selenium2+python3登錄163郵箱
阿新 • • 發佈:2019-03-23
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郵箱