Pytest Selenium 的断言错误(断言 current_url)

问题描述 投票:0回答:0

我正在写一个页面对象模式的测试。 为此,我创建了 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"
selenium-webdriver pytest pageobjects
© www.soinside.com 2019 - 2024. All rights reserved.