我在向谷歌登录框中的用户名和密码字段发送密钥时遇到问题。Selenium 使用 id 的“Email”和“Passwd”找到 webelements,但我无法向它们发送任何密钥。
这是没有产生预期结果的代码:
from selenium import webdriver
#from selenium.webdriver.common.keys import Keys
import time
username = "test"
password = "ninja"
driver = webdriver.Firefox()
driver.get(u'http://www.google.com')
driver.implicitly_wait(10)
elem = driver.find_element_by_id("gb_70")
elem.click()
username = driver.find_element_by_id('Email')
username.send_keys(username)
此代码生成错误:
Traceback(最近一次调用最后):文件“SERPkopi.py”,第 18 行,在 username.send_keys(username) 文件“/Users/Sverdrup/virtualenv-1.6.1/Alert/lib/python2.7/site-packages/ selenium/webdriver/remote/webelement.py”,第 142 行,在 send_keys local_file = LocalFileDetector.is_local_file(*value) 文件“/xxxxx/xxxxxx/virtualenv-1.6.1/Alert/lib/python2.7/site-packages/ selenium/webdriver/remote/webelement.py",第 253 行,在 is_local_file 中 for i in range(len(val)): TypeError: 'WebElement' 类型的对象没有 len()
这很奇怪,因为相同的代码可以写入谷歌的“q”(查询)字段
我试图通过 id、name、xpath 来识别 webElement 无济于事。
原因的背景:
我今天睁大眼睛看谷歌警报,想在我公司的客户姓名上设置警报(这是企业对企业的设置,所以客户本身就是公司)。客户相对较小,我不认为我会收到很多关于他们名字的警报,但能够跟踪他们会很棒。
看到没有用于 google 警报的 API,我想我会使用 selenium 以编程方式输入数百个客户名称。不过,我首先必须能够登录我的帐户...
我真的很感激所有和任何帮助。
真挚地