用python+selenium写一个UI自动化测试示例
时间: 2023-05-26 13:01:20 浏览: 207
好的,这是一个使用 Python Selenium 写的 UI 自动化测试的示例:
```
# 导入所需的库
from selenium import webdriver
# 创建浏览器对象
driver = webdriver.Chrome()
# 访问要测试的网站
driver.get("https://www.example.com")
# 查找页面上的某个元素
element = driver.find_element_by_id("login_button")
# 在元素上执行某些操作
element.click()
# 关闭浏览器
driver.quit()
```
在这个示例中,我们首先导入了 Selenium 中的 webdriver 库,然后创建了一个 Chrome 浏览器对象。接下来,我们使用 `driver.get()` 方法访问要测试的网站。
然后,我们使用 `driver.find_element_by_id()` 方法查找页面上的某个元素(在这个例子中是一个登录按钮)。最后,我们使用 `element.click()` 方法点击这个元素,并使用 `driver.quit()` 方法关闭浏览器。
这只是一个简单的示例,在实际应用中,您可以执行更复杂的操作,如在表单中输入文本、选择下拉列表中的选项、执行 JavaScript 代码等。
相关问题
使用python和selenium编写一个Ui自动化测试框架
好的,下面是一个简单的基于 Python 和 Selenium 的 UI 自动化测试框架。
首先,我们需要安装 Selenium:
```bash
pip install selenium
```
接下来,我们需要下载对应浏览器的驱动程序,例如 Chrome 浏览器的驱动程序可以在以下链接中下载:
[https://sites.google.com/a/chromium.org/chromedriver/downloads](https://sites.google.com/a/chromium.org/chromedriver/downloads)
下载后将驱动程序放在一个合适的目录中,并将该目录添加到系统环境变量中。
然后,我们可以编写一个基本的测试类:
```python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class TestFramework:
def __init__(self):
self.driver = webdriver.Chrome()
self.wait = WebDriverWait(self.driver, 10)
def test_google_search(self):
self.driver.get("https://www.google.com/")
search_input = self.driver.find_element_by_name("q")
search_input.send_keys("Selenium")
search_input.send_keys(Keys.RETURN)
results = self.wait.until(EC.presence_of_all_elements_located((By.CLASS_NAME, "g")))
for result in results:
print(result.text)
def cleanup(self):
self.driver.quit()
```
在上面的代码中,我们首先初始化了一个 Chrome 浏览器的 WebDriver 对象,并创建了一个 WebDriverWait 对象,用于等待页面元素加载完成。然后我们定义了一个测试方法 test_google_search,该方法打开 Google 搜索首页,输入“Selenium”,并打印搜索结果。最后我们定义了一个 cleanup 方法,在测试结束后关闭浏览器。
我们可以使用 unittest 模块来运行这个测试类:
```python
import unittest
class TestGoogleSearch(unittest.TestCase):
def setUp(self):
self.framework = TestFramework()
def test_search(self):
self.framework.test_google_search()
def tearDown(self):
self.framework.cleanup()
if __name__ == '__main__':
unittest.main()
```
在上面的代码中,我们使用 unittest 模块来运行测试类 TestGoogleSearch,在 setUp 和 tearDown 方法中创建和销毁 TestFramework 对象,实现了测试的自动化运行。
这只是一个简单的框架示例,实际应用中还需要考虑测试数据管理、测试报告生成、异常处理等。
Python+selenium+pytest以及po模式的自动化测试框架
Python+Selenium+pytest+PO模式是一种常用的Web UI自动化测试框架,下面是一些基本的步骤:
1. 安装pytest和Selenium:使用pip install pytest selenium命令进行安装。
2. 创建pytest测试用例:创建一个py文件,使用pytest框架编写测试用例,可以使用Selenium进行web页面的操作和数据的验证。
3. 创建PO模式的页面对象:使用Page Object模式构建页面对象,将页面的元素和操作封装在一个类中,方便管理和维护。
4. 运行pytest测试:使用pytest运行测试用例,并查看测试报告。
5. 使用pytest插件:pytest提供了许多插件,例如pytest-html、pytest-xdist等,可以用来生成HTML测试报告、运行分布式测试等。
下面是一个简单的示例代码:
```python
# conftest.py文件
from selenium import webdriver
import pytest
@pytest.fixture(scope='module')
def driver():
driver = webdriver.Chrome()
yield driver
driver.quit()
# test_login.py文件
from pages.login_page import LoginPage
def test_login(driver):
login_page = LoginPage(driver)
login_page.open()
login_page.input_username('test')
login_page.input_password('test123')
login_page.click_submit()
assert login_page.get_login_result() == '登录成功'
# login_page.py文件
from selenium.webdriver.common.by import By
class LoginPage:
url = 'http://localhost/login'
def __init__(self, driver):
self.driver = driver
def open(self):
self.driver.get(self.url)
def input_username(self, username):
self.driver.find_element(By.ID, 'username').send_keys(username)
def input_password(self, password):
self.driver.find_element(By.ID, 'password').send_keys(password)
def click_submit(self):
self.driver.find_element(By.ID, 'submit').click()
def get_login_result(self):
return self.driver.find_element(By.ID, 'result').text
```
在上面的示例中,我们使用了pytest的fixture机制来管理WebDriver对象的生命周期,使用PO模式的页面对象来封装登录页面的元素和操作。我们可以通过执行pytest test_login.py命令来运行测试,并生成测试报告。
阅读全文