无法使用Python中的Selenium网络驱动程序登录到Quora



我正在使用Python中的Selenium模块登录Quora。它在Facebook上运行良好,但我在Quora上尝试时在send_keys('my_email')行遇到错误:

我正在使用以下脚本。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Firefox()
driver.get('http://www.quora.com/')
time.sleep(60)
username = driver.find_element_by_name('email')
time.sleep(60)
username.send_keys('my_email')
time.sleep(60)
password = driver.find_element_by_name('password')
time.sleep(60)
password.send_keys('my_password')
time.sleep(60)
password.send_keys(Keys.RETURN)
driver.close

睡眠时间在这里不是问题,因为我尝试使用Python外壳逐行执行脚本。

错误:

Traceback(最后一次调用):文件",第1行,在password.send_keys('my_password')文件"C:\Python27\lib\site packages\selenium\webdriver\remote\webelement.py",第293行,在send_keys中自我_execute(Command.SEND_KEYS_TO_ELEMENT,{'value':键入})文件"C:\Python27\lib\site packages\selenium\webdriver\remote\webelement.py",第370行,在_execute中回归自我_parent.execute(command,params)文件"C:\Python27\lib\site packages\selenium\webdriver\remote\webdriver.py",第173行,执行中self.error_handler.check_response(response)文件"C:\Python27\lib\site packages\selenium\webdriver\remote\errorhandler.py",第164行,在check_response中引发exception_class(消息、屏幕、堆栈)ElementNotVisibleException:消息:u'Element当前不存在可见,因此可能无法与之交互;Stacktrace:在fxdriver.seconditions.visible(file:///c:/users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js:8791:5)在DelayedCommand.prototype.checkPreconditions(file:///c:/users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js:11438:1)在DelayedCommand.prototype.executeInternal/h(file:///c:/users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js:11455:11)在DelayedCommand.prototype.executeInternal(file:///c:/users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js:11460:7)在DelayedCommand.protype.execule/<(file:///c:/users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js:11402:5)

问题是name="email"有多个输入。

您需要"常规登录"部分中的一个:

form = driver.find_element_by_class_name('regular_login')
username = form.find_element_by_name('email')
username.send_keys('my_email')
password = form.find_element_by_name('password')
password.send_keys('my_password')

相关内容

最新更新