Pytest - 将 webdriver 从没有类的方法传递到另一个文件中的另一个类

问题描述

我想使用夹具编写一个页面对象样式的 Pytest。

  1. 我有一个 conftest.py 文件,它使用 @pytestfixture () 初始化网络驱动程序(只有 def - 没有类)
  2. 我有一个包含 1 个类和 3 个方法方法文件
  3. 我有一个测试主文件,其中在类之前使用 @ Pytest.mark.usefixtures ("...") 在类之前初始化 webdriver

主要问题。

如何从 webdriver conftest 传递到 open.py 以便它作为 webdriver 可见。以便它与@ Pytest.fixture() 中用于初始化浏览器的 webdriver 完全相同

通常,我从 conftest.py 文件中的事实知道这一点,如果我开始输入“driver.find ....”,它会开始向我显示提示,并且会显示它是一个网络驱动程序。

enter image description here

如果我开始输入相同的 Open.py,我将无法访问这些“提示/功能?”

enter image description here

通常,我想在 Open.py 中使用与 conftest.py 中相同的驱动程序 - 我设法在“def”之前添加一个类,但随后它不起作用@Pytest.fixture()

Conftest.py

@pytest.fixture()
def local_setup(request):
options = Options()
options.page_load_strategy = 'normal'
chrome_options = webdriver.ChromeOptions()

if os.name == 'nt':
    # chrome_options.add_argument('window-size=1920x1080')
    chrome_options.add_argument('start-maximized')
    driver = webdriver.Chrome(ChromeDriverManager().install(),options=chrome_options)
    request.cls.driver = driver


else:
    chrome_options.add_argument('--no-sandBox')
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    # chrome_options.add_argument('start-maximized')
    # chrome_options.add_argument("window-size=1920,1080")
    driver = webdriver.Chrome(options=chrome_options)
    request.cls.driver = driver

Open.py

class Open_Tvn24_with_rodo_accept:
     def __init__(self,driver):
        self.driver = driver

    def open_tvn24_page(self):
        driver = self.driver
        driver.get("https://tvn24.pl/")

    def onetrust_rodo_accept(self):
        driver = self.driver
        
    def tvn24_load_page_check(self):
        driver = self.driver

Test_File.py

@pytest.mark.usefixtures("local_setup")
class Test_Articles:

    def test_Urgent_Article_Video_Presence(self):
        Tvn24_page_open = Open_Tvn24_with_rodo_accept()
        Tvn24_page_open.open_tvn24_page()
        Tvn24_page_open.onetrust_rodo_accept()
        Tvn24_page_open.tvn24_load_page_check()



    

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...