selenium自動登錄163郵箱
一、以“https://mail.163.com/” 入口登錄
效果如下:
代碼:
from selenium import webdriver from time import sleep browser = webdriver.Chrome() browser.get("https://mail.163.com/") # browser.maximize_window() #將掃碼登錄轉化為用戶名密碼登錄 browser.find_element_by_xpath('//div[@id="lbNormal"]').click() #轉化登錄方式之后,要進入iframe框 browser.switch_to.frame(browser.find_element_by_xpath('//iframe[starts-with(@id,"x-URS")]')) sleep(1) browser.find_element_by_xpath('//input[@name="email"]').send_keys('xxxxxxx') browser.find_element_by_xpath('//input[@name="password"]').send_keys('xxxxxxx') browser.find_element_by_xpath('//*[@id="dologin"]').click() sleep(2) print(browser.page_source) sleep(3) browser.quit()
二、以“https://email2.163.com/” 入口登錄
以該入口登錄不需要將掃碼切換為用戶名密碼登錄的操作
代碼:
from selenium import webdriver from time import sleep browser = webdriver.Chrome() browser.get("https://email2.163.com/") # browser.maximize_window() browser.switch_to.frame(browser.find_element_by_xpath('//iframe[starts-with(@id,"x-URS")]')) sleep(1) browser.find_element_by_xpath('//input[@name="email"]').send_keys('xxxxxx') browser.find_element_by_xpath('//input[@name="password"]').send_keys('xxxxx') browser.find_element_by_xpath('//*[@id="dologin"]').click() sleep(2) print(browser.page_source) sleep(3) browser.quit()
注意點:
1、登錄時要切換到 iframe框中,browser.switch_to.frame(),否則找不到輸入框
2、iframe框的id是動態變化的,要用模糊匹配
browser.find_element_by_xpath('//iframe[starts-with(@id,"x-URS")]')