No se puede iniciar sesión en Quora utilizando Selenium webdriver en Python

Estoy usando un módulo de Selenium en Python para iniciar sesión en Quora. Funciona bien para Facebook, pero recibo un error en la línea send_keys('my_email') al intentarlo en Quora:

Estoy usando el siguiente script.

 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 

El tiempo de inactividad no es un problema aquí, porque intenté ejecutar un script línea por línea usando el shell de Python.

Error:

Seguimiento (última llamada más reciente): Archivo “”, línea 1, en password.send_keys (‘my_password’) Archivo “C: \ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ webelement.py”, línea 293 , en send_keys self._execute (Command.SEND_KEYS_TO_ELEMENT, {‘value’: typing}) Archivo “C: \ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ webelement.py”, línea 370, en _execute return self ._parent.execute (comando, parámetros) Archivo “C: \ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py”, línea 173, en ejecutar self.error_handler.check_response (respuesta) Archivo “C: \ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py “, línea 164, en check_response raise exception_class (message, screen, stacktrace) ElementNotVisibleException: Mensaje: el elemento no está visible actualmente y, por lo tanto, no puede ser interactuado con ‘; Stacktrace: at fxdriver.preconditions.visible (file: /// c: /users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js: 8791: 5) en DelayedCommand. prototype.checkPreconditions_ (file: /// c: /users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js: 11438: 1) at DelayedCommand.prototype.executeInternation (file: /// c: /users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js: 11455: 11) en DelayedCommand.prototype.executeInternal_ (file: // /c:/users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js:11460:7) en DelayedCommand.prototype.execute / <(file: /// c: /users/siddhesh/appdata/local/temp/tmpgwft3s/extensions/fxdriver@googlecode.com/components/command_processor.js:11402:5)

El problema es que hay varias entradas con el name="email" .

Necesitas el de la sección “Inicio de sesión regular”:

 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')