AttributeError: type object 'By' has no attribute 'name'
AttributeError: type object 'By' has no attribute 'name'
我正在做一个可以进入我的电子邮件的 selenium 程序,但是我遇到了 By
的问题,而且它不能是 By.name("")
或者看起来是这样。
这是代码中提到的部分:(运行 on windows 7):
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")
如果您遇到此错误,则会出现一些例外情况,例如:
- 你正在使用 By.name 也许你应该使用 By.NAME
- 您可能会得到对象列表!
- 你可能没有导入
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()
我正在做一个可以进入我的电子邮件的 selenium 程序,但是我遇到了 By
的问题,而且它不能是 By.name("")
或者看起来是这样。
这是代码中提到的部分:(运行 on windows 7):
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")
如果您遇到此错误,则会出现一些例外情况,例如:
- 你正在使用 By.name 也许你应该使用 By.NAME
- 您可能会得到对象列表!
- 你可能没有导入
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()