I am trying to auto-login with my GMail account with Selenium in Python, but I am getting this error:
selenium.common.exceptions.ElementNotVisibleException: Mess
Try changing the url. Use https://accounts.google.com/ServiceLogin?service=mail#identifier
instead of http://gmail.com
.
Make sure you use your original email and password. And change self.driver.find_element_by_name
to self.driver.find_element_by_id
for every element.
Your code will be:
#!/usr/bin/python
# coding: utf8
import scrapy
import time
from selenium import webdriver
from scrapy.selector import Selector
from selenium.webdriver.common.action_chains import ActionChains
from scrapy.contrib.spiders import CrawlSpider
from scrapy.selector import HtmlXPathSelector
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.http import Request, FormRequest
from scrapy import log
from scrapy.exceptions import DropItem
from scrapy import signals
from selenium.webdriver.common.by import By
from scrapy import signals
from scrapy.http import TextResponse
from scrapy.xlib.pydispatch import dispatcher
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
class googleplay(CrawlSpider):
name = "selenium"
flag = True
def __init__(self):
self.driver = webdriver.Firefox()
self.driver.get('http://gmail.com')
action = webdriver.ActionChains(self.driver)
#User name input field identification and data entered
usernametext = self.driver.find_element_by_name('Email')
usernametext.send_keys("myemail@gmail.com") #put your actual username
self.driver.find_element_by_name('signIn').click()
#Password input field identification and data entered
passwordtext = self.driver.find_element_by_id('Passwd')
passwordtext.send_keys("mypassword") #put your actual password
self.driver.find_element_by_id('signIn').click()
print "----------------------"
#key.click()
print "----------------------"
start_urls = ["https://www.mywebsite.com"]
def parse(self, reponse):
#Loading the gmail URL
print "toto"