Python Pytest-链接函数\row与局部变量(测试优化)

Python Pytest-链接函数\row与局部变量(测试优化),python,selenium-webdriver,pytest,Python,Selenium Webdriver,Pytest,确认测试: import pytest from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait @pytest.fixture(autouse=True) def driver(): driver = webdriver.Chrome(executable_path=r"C:\webdrivers\chromedriver.exe") dr

确认测试:

import pytest
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait


@pytest.fixture(autouse=True)
def driver():
    driver = webdriver.Chrome(executable_path=r"C:\webdrivers\chromedriver.exe")
    driver.implicitly_wait(5)
    driver.maximize_window()
    yield driver
    driver.quit()


@pytest.fixture(autouse=True)
def wait(driver):
    wait = WebDriverWait(driver, 10)
    return wait
测试示例:

from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from variables import *


def test_login(driver, wait):
    driver.get(url)
    original_window = driver.current_window_handle
    wait.until(EC.visibility_of_element_located((By.XPATH, login_btn_ws)))
    driver.find_element_by_xpath(login_btn_ws).click()
    for window_handle in driver.window_handles:
        if window_handle != original_window:
            driver.switch_to.window(window_handle)
            break
    wait.until(EC.visibility_of_element_located((By.XPATH, login_field)))
    driver.find_element_by_xpath(login_field).send_keys(login)
    driver.find_element_by_xpath(password_field).send_keys(password, Keys.ENTER)
    wait.until((EC.element_to_be_clickable((By.XPATH, welcome_field))))
    assert url_check in driver.current_url and welcome_check in driver.find_element_by_xpath(welcome_field).text.lower()
我想从测试模块到conftest或者类似的东西——代码的两部分(见下文):

  • driver.get(url)
  • 主要的问题是,我不明白如何正确定义url、原始窗口等变量。 目前项目的结构:主文件夹中的conftest,包含两个文件的子文件夹:test和variables文件,您可以在上面的测试示例中看到。我很抱歉没有提供完整的可运行代码和变量文件
  •      if window_handle != original_window:
             driver.switch_to.window(window_handle)
             break