首页 > 解决方案 > 错误:AttributeError:“WebElement”对象在使用 Python 的 Selenium 中没有属性“Clear”

问题描述

尝试在演示站点中运行以下代码时出现此错误:

self.driver.find_element(By.XPATH, "//input[@id='txtUsername']").Clear() 
"AttributeError: 'WebElement' object has no attribute 'Clear'"

我用 2 个 .py 文件创建了一个 POM 格式,但我无法找到错误的根本原因。

这是主要课程:

import time
import unittest
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from POMProjectDemo.Pages.LoginPage import LoginPage
from POMProjectDemo.Pages.HomePage import HomePage

class LoginTest(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        s = Service("C:/drivers/chromedriver.exe")
        cls.driver = webdriver.Chrome(service=s)
        cls.driver.implicitly_wait(10)
        cls.driver.maximize_window()

    def test_login_valid(self):
        driver = self.driver
        self.driver.get("https://opensource-demo.orangehrmlive.com/index.php/auth/login")

        login = LoginPage(driver)
        login.enter_username("Admin")
        login.enter_password("admin123")
        login.click_login()

    @classmethod
    def tearDownClass(cls):
        cls.driver.close()
        cls.driver.quit()
        print("Test Completed")

这是登录页面:

from selenium.webdriver.common.by import By

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

        self.username_textbox_xpath = "//input[@id='txtUsername']"
        self.password_textbox_cssSelector = "input[type='password']"
        self.login_button_xpath = "//input[@value='LOGIN']"

    def enter_username(self, username):
        self.driver.find_element(By.XPATH, self.username_textbox_xpath).Clear()
        self.driver.find_element(By.XPATH, self.username_textbox_xpath).send_keys(username)

    def enter_password(self, password):
        self.driver.find_element(By.CSS_SELECTOR, self.password_textbox_cssSelector).Clear()
        self.driver.find_element(By.CSS_SELECTOR, self.password_textbox_cssSelector).send_keys(password)

    def click_login(self):
        self.driver.find_element(By.XPATH, self.login_button_xpath).Click()

对这个错误有什么想法吗?

标签: pythonseleniumselenium-webdriver

解决方案


这些方法区分大小写

错误案例:.Click() 和 .Clear() // 您已使用它们来代替使用

正确案例: .click( ).clear()


推荐阅读