两个测试用例,怎么只启动一次浏览器
时间: 2024-04-01 15:38:16 浏览: 66
python+selenium+unittest 只启动一次浏览器方法(csdn)————程序.pdf
5星 · 资源好评率100%
在 `pytest` 中,可以使用夹具(fixture)来实现在多个测试用例之间共享资源的目的。对于浏览器这种需要启动和关闭的资源,可以使用 `pytest.fixture` 来创建一个浏览器对象,并在测试用例中使用。
以下是一个示例代码,演示如何使用夹具来共享一个浏览器对象:
```python
import pytest
from selenium import webdriver
@pytest.fixture(scope="module")
def browser():
driver = webdriver.Chrome()
yield driver
driver.quit()
def test_search(browser):
browser.get("https://www.baidu.com")
assert browser.title == "百度一下,你就知道"
def test_navigation(browser):
browser.get("https://www.baidu.com")
link = browser.find_element_by_link_text("新闻")
link.click()
assert browser.title == "百度新闻——海量中文资讯平台"
```
在这个例子中,我们创建了一个名为 `browser` 的夹具,它的作用域是整个模块。`yield` 表示将浏览器对象返回给测试用例,等待测试用例执行完毕后再执行 `driver.quit()`,关闭浏览器。
在两个测试用例中,我们都使用了 `browser` 这个夹具,这意味着它们会共享同一个浏览器对象,从而避免了重复启动和关闭浏览器的操作。
注意,夹具的作用域(scope)可以是函数级别、模块级别、类级别或会话级别,具体的作用域可以根据需要进行调整。
阅读全文