我正在写一个页面对象模式的测试。 为此,我创建了 base_page、login_page、test_login。 检查授权时(成功,我可以看到),出现测试失败的错误。也许我对继承有误,我没有正确描述 base_page 和 LoginPage 类?你能帮我正确组织类继承吗?
base_page
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class BasePage:
def __init__(self, driver):
self.driver = driver
def open(self, url):
self.driver.get(url)
def get_title(self):
return self.driver.title
**登录页面 **
from base_page import BasePage
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.webdriver import WebDriver
from selenium import webdriver
class LoginPage(BasePage):
def __init__(self, driver: WebDriver):
self.driver = webdriver.Chrome()
self.wait = WebDriverWait(self.driver, 10)
def enter_username(self, username: str) -> None:
self.driver.find_element(
By.XPATH, 'xpathcode there').send_keys(username)
def enter_password(self, password: str) -> None:
self.driver.find_element(
By.XPATH, 'xpathcode there').send_keys(password)
def click_login_button(self) -> None:
self.driver.find_element(
By.XPATH, 'xpathcode there').click()
def login(self, username: str, password: str) -> None:
self.enter_username(username)
self.enter_password(password)
self.click_login_button()
test_login
from selenium.webdriver.chrome.webdriver import WebDriver
import pytest
from selenium import webdriver
from login_page import LoginPage
@pytest.fixture
def driver():
driver = webdriver.Chrome()
yield driver
driver.quit()
def test_login(driver):
login_page = LoginPage(driver)
login_page.driver.get("https://example.com/login")
login_page.login("test", "Testtest1")
# Assert
expected_url = "https://example.com/profile"
assert expected_url in driver.current_url, f"Failed"