FindElement 不是 webdriver 的属性

FindElement is not an attribute of webdriver

我每次使用 FindElement(By.xpath("//... 语法而不是 find_element_by_xpath(... 等时都会收到此错误,告诉我 FindElement is not an attribute of webdriver。我必须写下什么形式的声明才能使它成为一个属性。我只使用:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get('https://demoqa.com/text-box')

EnterFullName = driver.FindElement(By.xpath('//input[contains(@id,"userName")'])
EnterFullName.send_keys("Daniel Soth")

如果我写下这行代码,显然可以工作:

EnterFullName = driver.find_element_by_xpath('//*[@id="userName"]')

EnterFullName.send_keys("Daniel Soth")

但是我对这个根本不起作用的 FindElement 属性很感兴趣,我希望有人解释为什么以及我需要声明什么才能让它起作用。

FindElement 在 python 包中被命名为 driver.find_element(根据 python 的 naming convention)。

这就是您在 python 中的使用方式:

enter_full_name = driver.find_element(By.XPATH, "//input[contains(@id,'userName')]")