selenium03-三個簡單的web自動化實例


1.百度登錄

哈,學selenium,第一個想法就是拿百度登錄試試,是的沒錯,就是它了!

 

from selenium import webdriver  #導入webdriver

import time  #導入時間模塊

b = webdriver.Firefox()  #打開火狐瀏覽器

b.maximize_window()  #窗口最大化

b.get('http://www.baidu.com')  #打開百度首頁

 

time.sleep(2)  #強制等待兩秒,等網頁完全打開

b.find_element_by_xpath('/html/body/div[1]/div[1]/div/div[3]/a[7]').click()  #打開登錄框

time.sleep(2)  #強制等待兩秒,等登錄框彈出

b.find_element_by_id('TANGRAM__PSP_10__footerULoginBtn').click()  #切換到賬號密碼登錄

b.find_element_by_name('userName').send_keys('12345678')  #輸入賬號

b.find_element_by_name('password').send_keys('12345678')  #輸入密碼

b.find_element_by_name('memberPass').click()  #取消密碼保存

b.find_element_by_id('TANGRAM__PSP_10__submit').click()  #登錄

 

結果:點擊登錄后彈出手機號驗證,所以登錄未完成,不過過程代碼應該是沒錯

 

2.淘寶

在百度受挫之后,第二個想到的就是淘寶。

 

from selenium import webdriver  #導入webdriver

import time  #導入時間

from selenium.webdriver.common.keys import Keys  #導入Keys

b = webdriver.Firefox()  #打開火狐瀏覽器

b.maximize_window()  #窗口最大化

b.get('https://www.taobao.com/')  #打開淘寶網

 

time.sleep(2)  #強制等待2秒,等網頁打開

b.find_element_by_xpath('//*[@id="J_SiteNavLogin"]/div[1]/div[1]/a[1]').click()  #點擊跳轉登錄頁面

time.sleep(2)  #強制等待2秒,進入登錄頁面

b.find_element_by_id('J_Quick2Static').click()  #選擇賬號密碼登錄模式

time.sleep(2)  #強制等待2秒,等登錄窗口打開

b.switch_to.active_element.send_keys('12345678')  #輸入賬號

b.find_element_by_name('TPL_password').send_keys('12345678')  #輸入密碼

b.find_element_by_id('J_Quick2Static').click()  #點擊登錄

 

結果:又失敗了,會出現一個滑塊驗證,我手工把滑塊完成,顯示“哎呀,出錯了,點擊刷新再來一次(error:N18f4f)”,刷新后再次操作滑塊,依然報錯。

后來百度得知,是淘寶網站監測到使用了自動化工具,所以這個滑塊是無法完成的……

另外補充一點,賬號輸入框元素定位成功,但是無法輸入,顯示‘element is not reachable by keyboard’,有人說是firefox瀏覽器問題,於是使用另外的方式去輸入了。

browser.switch_to.active_element.send_keys('****')

按照字面意思理解,應該是獲取當前活動狀態的元素,直接操作吧。

總而言之,雖然失敗了,但是真不是我的問題,自動化工具的監測,還不是我這樣一個小萌新能解決的,希望以后能搞定吧。

 

3.QQ郵箱

三大流氓 BAT 啊,BA 都試過了,輪到 T 了。

 

from selenium import webdriver  #導入webdriver

import time  #導入時間模塊

b = webdriver.Firefox()  #打開火狐瀏覽器

b.maximize_window()  #窗口最大化

b.get('https://mail.qq.com/')  #進入qq郵箱首頁

 

time.sleep(2)  #強制等待兩秒

b.switch_to.frame('login_frame')  #轉入登錄模塊所在的 frame

b.find_element_by_id('switcher_plogin').click()  #點擊進入賬號密碼登錄模式

time.sleep(2)  #強制等待兩秒

b.find_element_by_id('u').send_keys('12345678@qq.com')  #輸入賬號

b.find_element_by_id('p').send_keys('12345678')  #輸入密碼

b.find_element_by_id('p_low_login_enable').click()  #點擊選擇記住密碼:練習時最好別選,不然很容易觸發驗證

b.find_element_by_id('login_button').click()  #登錄

 

結果:登錄成功了。

 

總結:登錄驗證確實很頭疼,不過初入門的也不需要對自己要求這么高,一般中小型公司自己的網站應該都沒有反自動化工具的功能吧,基本上提供個賬號+密碼就可以登錄了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM