使用Python Selenium自动连接我的Gmail帐户

我正在尝试使用Python中的Selenium用我的GMail帐户自动登录,但出现此错误:

selenium.common.exceptions.ElementNotVisibleException: Message: Element is not currently visible and so may not be interacted with

我的代码如下所示:

#!/usr/bin/python

# coding: utf8

import scrapy

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

import scrapy

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("myemailaddress@gmail.com") #put your actual username

self.driver.find_element_by_name('signIn').click()

time.sleep(2)

#Password input field identification and data entered

passwordtext = self.driver.find_element_by_name('Passwd')

passwordtext.send_keys("password") #put your actual password

key = self.driver.find_element_by_name('signIn')

print "----------------------"

key.click()

print "----------------------"

start_urls = ["https://www.mywebsite.com"]

def parse(self, reponse):

#Loading the gmail URL

print "toto"

我该如何解决我的问题?

回答:

尝试更改网址。使用https://accounts.google.com/ServiceLogin?service=mail#identifier代替http://gmail.com

确保使用原始电子邮件和密码。并更改self.driver.find_element_by_nameself.driver.find_element_by_id每个元素。

您的代码将是:

#!/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"

以上是 使用Python Selenium自动连接我的Gmail帐户 的全部内容, 来源链接: utcz.com/qa/419686.html

回到顶部