错误:AttributeError:&x27;WebElement';对象没有属性';清除';在Selenium中使用Python

错误:AttributeError:&x27;WebElement';对象没有属性';清除';在Selenium中使用Python,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,我在尝试在演示站点中运行以下代码时遇到此错误: 我用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

我在尝试在演示站点中运行以下代码时遇到此错误:

我用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()

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

这些方法区分大小写

错误的大小写:.Click()和.Clear()//您使用了它们


更正大小写。单击()。清除()

不应该是
。清除()
。单击()
?也就是说,两个字母都是小写的?谢谢,我没有注意到我在两个字母中都使用大写,现在它成功地工作了。
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()