pytest+selenium 如何循环执行
时间: 2023-12-26 21:03:22 浏览: 140
可以使用 pytest 的参数化和循环来实现 pytest+selenium 的循环执行。具体步骤如下:
1. 在 conftest.py 文件中定义 fixture,用于初始化浏览器驱动并返回 driver 对象。
```python
import pytest
from selenium import webdriver
@pytest.fixture(scope="function")
def driver(request):
# 初始化浏览器驱动
driver = webdriver.Chrome()
# 设置隐式等待时间
driver.implicitly_wait(10)
# 在测试用例执行完毕后关闭浏览器
def close_driver():
driver.quit()
request.addfinalizer(close_driver)
return driver
```
2. 在测试用例文件中使用参数化和循环来执行多次测试。
```python
import pytest
from selenium.webdriver.common.by import By
data = ['http://www.google.com', 'http://www.baidu.com', 'http://www.bing.com']
@pytest.mark.parametrize("url", data)
def test_search(driver, url):
driver.get(url)
driver.find_element(By.NAME, "q").send_keys("pytest")
driver.find_element(By.NAME, "btnK").click()
assert "pytest" in driver.title
```
在上面的代码中,使用了 `@pytest.mark.parametrize` 装饰器来指定参数化的变量和数据源,然后在测试用例函数中使用循环来执行多次测试。执行测试时,pytest 会自动根据参数化数据源生成多个测试用例,并依次执行。
阅读全文