使用Python中的Selenium登录gmail

时间:2017-07-01 02:37:46

标签: python selenium selenium-webdriver

我正在尝试使用Selenium登录gmail。在新的Gmail登录中,首先键入您的电子邮件ID,然后在您输入密码的位置输入下一页。电子邮件页面和密码页面的URL都不同。因此,当我在driver.get中传递密码URL时,它正在重新加载页面,如果您刷新URL而不输入密码,它会重定向到电子邮件页面。因此,它缺少密码字段选择器。 current_url仍然是之前的网址,即电子邮件页面的网址。这是我的代码。我正在使用chrome驱动程序和python 2.X

import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

chromedriver = "/Documents/chromedriver" # Path to chrome-driver
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)

# Email insert 

driver.get("https://accounts.google.com/signin/v2/identifier?service=mail&passive=true&rm=false&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F&ss=1&scc=1&ltmpl=default&ltmplcache=2&emr=1&osid=1&flowName=GlifWebSignIn&flowEntry=ServiceLogin")  #URL of email page
username = driver.find_element_by_id("identifierId")
username.send_keys("myemail")
driver.find_element_by_id("identifierNext").click()


# Password Insert 

driver.get("https://accounts.google.com/signin/v2/identifier?service=mail&passive=true&rm=false&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F&ss=1&scc=1&ltmpl=default&ltmplcache=2&emr=1&osid=1&flowName=GlifWebSignIn&flowEntry=ServiceLogin")  # URL of password page
password = driver.find_element_by_id("password")
password.send_keys("mypassword")
driver.find_element_by_id("passwordNext").click()

#driver.quit()

1 个答案:

答案 0 :(得分:1)

以下是您的问题的答案:

当我们使用 { Selenium 3.4.3 geckodriver v0.17.0 Mozilla Firefox 53.0 时{1}} ,我们可以使用定位器 Python 3.6.1 xpath 通过<登录我们各自的Gmail帐户强> css_selector

使用XPATH:

以下是使用Gmail's signin module v2登录Gmail的示例代码:

xpath

使用CSS_SELECTOR:

以下是使用from selenium import webdriver from selenium.webdriver.firefox.firefox_binary import FirefoxBinary from selenium.webdriver.common.desired_capabilities import DesiredCapabilities from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe') caps = DesiredCapabilities().FIREFOX caps["marionette"] = True driver = webdriver.Firefox(capabilities=caps, firefox_binary=binary, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe") driver.get("https://accounts.google.com/signin") email_phone = driver.find_element_by_xpath("//input[@id='identifierId']") email_phone.send_keys("your_emailid_phone") driver.find_element_by_id("identifierNext").click() password = WebDriverWait(driver, 5).until( EC.element_to_be_clickable((By.XPATH, "//input[@name='password']")) ) password.send_keys("your_password") driver.find_element_by_id("passwordNext").click() 登录Gmail的示例代码:

css_selector