#python #selenium-webdriver #pytest
#python #selenium-webdriver #pytest
Вопрос:
conftest:
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:webdriverschromedriver.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)
-
if window_handle != original_window: driver.switch_to.window(window_handle) break
Основная проблема в том, что я не понимаю, как правильно определять переменные, такие как URL, исходное окно и т.д.
Структура проекта на данный момент: conftest в основной папке, подпапка с двумя файлами: test и variables file, которые вы можете увидеть выше на примере теста. Я прошу прощения за то, что не предоставил полный исполняемый код с файлом переменных.