python - Pyest 第二个浏览器参数不会从夹具加载站点
问题描述
我有一个类 Pytest 夹具,它有两个参数chrome
,firefox
将在类级别运行。第一个参数 ,很好地chrome
加载了load_site
夹具,但第二个参数,firefox
,不加载load_site
,而是直接进入 yield 并关闭浏览器。不确定是什么原因造成的。请帮忙!
如果将load_site
夹具从类中删除并设置在test_open_url
with中,它确实有效self.driver.get(MY_LOGIN_PAGE)
。
不幸的是,我无法将其从类固定装置中分离出来,因为我需要在每次初始测试运行开始时加载此页面。
我的代码如下:
import pytest
from selenium import webdriver
from time import sleep
from webdriver_manager.chrome import ChromeDriverManager
@pytest.fixture(params=["chrome", "firefox"], scope="class")
def driver_init(request):
if request.param == "chrome":
web_driver = webdriver.Chrome(executable_path=ChromeDriverManager().install())
if request.param == "firefox":
web_driver = webdriver.Firefox(executable_path="../resources/drivers/geckodriver")
request.cls.driver = web_driver
yield
web_driver.close()
@pytest.fixture(scope="class", name="load_site")
def load_site(request):
request.cls.driver.get("MY_LOGIN_PAGE")
@pytest.mark.usefixtures("driver_init", "load_site")
class TestURL:
def test_open_url(self):
sleep(2)
解决方案
推荐阅读
- r - 删除 stat_density_2d(geom = 'point') 中密度为 0(无数据)的点
- sparql - 根据名称查询所有属性的 Wikidata
- listview - rxdart replaySubject 流到颤动中的列表视图
- javascript - D3 组件与其他 React 组件重叠
- sql - 如何选择同事的第一拳
- c - 在C中将连续二进制分数转换为十进制分数
- mysql - MySQL“LIKE”忽略俄语单词的结果
- html - 在 Ajax ActionLink MVC 调用中将输入值作为参数传递
- sql - 我可以在三个 select 语句之间创建多个 Union 吗?
- html - 关键帧动画不执行