属性错误:类型对象"By"没有属性"name"



我正在执行一个硒程序,该程序可以进入我的电子邮件,但我的By有问题,它不可能是By.name(""),或者看起来是这样。

下面是提到的代码部分:(在Windows7上运行(:

psswd = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.name, "password")))
psswd.send_keys("MyPassword")

你差不多到了。你需要做一个简单的改变如下:

  • 您需要将name替换为NAME

实际上,您的代码行将是:

psswd = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.NAME, "password")))
psswd.send_keys("MyPassword")

如果您面临此错误,则会出现一些异常,如:

  1. 您使用的是By.name也许您应该使用By.name
  2. 您可能会得到对象列表
  3. 您可以不导入By,要导入它,请写入from selenium.webdriver.common.by import By

或者我建议您使用find_elements_by_xpath以更有效的方式定位您的物品这是示例代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
browser = webdriver.Firefox()
browser.get('https://www.facebook.com')
msg = 'KA_ME_HA_ME_HAAA'
username = browser.find_elements_by_xpath('//*[@id="email"]')
username[0].send_keys(msg)
browser.close()

相关内容

最新更新