1. 程式人生 > >selenium2+python3登錄163郵箱

selenium2+python3登錄163郵箱

imp 輸入框 找到 表單設計 fir 固定 屬性 fire .get

首先查看頁面的整個登錄流程:

打開mail.163.com→點擊郵箱賬號登錄→賬號輸入框→密碼輸入框→登錄

一、單一流程實現:打開網頁,找到郵箱賬號登錄,輸入賬號密碼,登錄

# 導入webdriver驅動
from selenium import webdriver
from time import ctime
# 新建火狐瀏覽器驅動
dr = webdriver.Firefox()
dr.get(https://mail.163.com)
# 點擊郵箱賬號登錄,使用xpath定位
dr.find_element_by_xpath(
//*[@id="lbNormal"]).click() print(ctime(), 已點擊郵箱賬號登錄)
# 接下來實現賬號密碼登錄,同樣需要定位,但是發現每次賬號密碼都找不到Can‘t find element從網上查找資料才知道這塊是作了表單設計,需要切換到frame定位。
# 同樣直接在瀏覽器查看元素也能發現賬號密碼輸入框其實在frame內

技術分享圖片

# 那就先定位frame,然後查看frame的屬性發現它的id是個小數,所以應該是作了隨機值可變的,不好定位。但是可以發現frame的父元素div的屬性是固定的,通過div找frame

dl_frame = dr.find_element_by_xpath(
//*[@id="loginDiv"]/iframe) # 切換到frame dr.switch_to.frame(dl_frame)

#下面開始輸入賬號和密碼

dr.find_element_by_name(email).clear()
dr.find_element_by_name(email).send_keys(‘**zhanghao**‘)
dr.find_element_by_name(password).clear()
dr.find_element_by_name(password).send_keys(‘***mima***‘)

# 然後點擊登錄(登錄按鈕也是在這個frame下)

技術分享圖片

dr.find_element_by_css_selector(#dologin).click()

# 登陸後切換表單到主頁面

dr.switch_to.default_content()

# 登陸後打印頁面title

print(‘當前頁面標題:‘dr.title)

執行報錯:

技術分享圖片

才發現div下面的frame是iframe,更改後執行:

技術分享圖片

到目前,單線登錄完成。



selenium2+python3登錄163郵箱