无法使用Python中的Selenium webdriver登录Quora

Sid*_*esh 3 python selenium python-2.7 selenium-webdriver quora

我在Python中使用Selenium模块登录Quora.它适用于Facebook,但我send_keys('my_email')在Quora上尝试时遇到错误:

我使用以下脚本.

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
Run Code Online (Sandbox Code Playgroud)

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

错误:

回溯(最近一次调用最后一次):文件"",第1行,在password.send_keys('my_password')文件"C:\ Python27\lib\site-packages\selenium\webdriver\remote\webelement.py",第293行,在send_keys中self._execute(Command.SEND_KEYS_TO_ELEMENT,{'value':输入})文件"C:\ Python27\lib\site-packages\selenium\webdriver\remote\webelement.py",第370行,在_execute返回self ._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:在DelayedCommand的fxdriver.preconditions.visible(文件:/// c:/users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js:8791:5).在delayededCommand.prototype.executeInternal_/h中的prototype.checkPreconditions_(文件:/// c:/users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js:11438:1) (文件:/// 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.prototype.execute/<(file:/// c: /users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js:11402:5)

ale*_*cxe 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')
Run Code Online (Sandbox Code Playgroud)