學習python的程序中,少不了接觸第三方庫,畢竟作為膠水語言python的強大之處也就是第三方庫體量龐大,無疑大大增強了python的戰斗力,
有時候想完成網頁自動化操作,這時候Selenium進入了我的世界,從獲悉它是用來控制瀏覽器完成自動化任務這一屬性以后,就如癡如醉的開始從官網和百度教程涉獵它的用法,
玩了一天,目前學會了自動打開瀏覽器,然后輸入指定的網址,接著最大化,隨后發現它還可以進行鍵鼠操作,這讓我想到了打開電腦,啟動python,自動登錄騰訊視頻賬號,
說干就干,馬上動手,不知道會有怎樣的驚喜?
流程一:啟動瀏覽器,然后最大化
首先安裝Selenium庫在你的本地環境,前提是安裝了Python,我用的是python3.9.1在我其他文章可以看到安裝教程,
打開cmd,然后使用pip(包管理軟體)進行安裝,輸入如下命令:
pip install selenium

像我這樣已經安裝完成,
不同的瀏覽器要下載不同的驅動,我用的是谷歌,所以在
谷歌驅動官方下載地址:
https://chromedriver.storage.googleapis.com/index.html
下載好的驅動放在python安裝目錄下就行,然后在python里參考selenium的chrome,像這樣:
from selenium.webdriver import Chrome
然后打開呼叫瀏覽器,像這樣:
driver = Chrome()
接著測驗一下能否打開瀏覽器,

好的,環境一切就緒,現在可以按照官網的教程開始操作了,
selenium官方中文檔案
https://www.selenium.dev/documentation/zh-cn/
最大化命令如下:
driver.maximize_window()
流程二:登錄騰訊視頻,然后最大化
get命令用于打開網址,接下來,我們打開騰訊視頻:
driver.get('https://v.qq.com/')
既然是看電影,沒有會員怎么行,這就需要登錄了,由于selenium可以操作鍵盤和滑鼠,所以我們登錄的輸入和點擊都可以完成,
那么點擊命令是在尋找到節點的情況下使用click(),而尋找的程序類似決議HTML的檔案樹,方法很多,可以通過id,classname,css selector等等,但我覺得這個最好用:xpath,而尋找的程序需要一定的前端基礎,這里直接放代碼,點擊打開登錄框:
driver.find_element_by_xpath("//div[@id='mod_head_user']").click()
雖然我覺得隱式等待可以提一下,但是我的千兆寬帶覺得用不上,大家感興趣的可以了解一下:implicitly_wait

同樣的道理,我們點擊QQ登錄,

我電腦登錄了qq,所以自然就出來了,再次執行點擊命令就可完成登錄,如果沒有登錄qq的朋友可以,切換到賬號密碼登錄,操作方法和上面差不多,都是屬于點擊命令,這里就不贅述,
不過這里要給大家說一個概念,叫iframe,這個登錄視窗是一個iframe頁面,也就是內嵌網頁,我們直接使用上述的命令無法點擊,需要切換到frame里才能操作,怎么切換呢?命令如下:
經過測驗,騰訊視頻登錄按鈕內嵌了兩層iframe,所以需要依次切換,像這樣:
driver.switch_to.frame('_login_frame_quick_') driver.switch_to.frame('ptlogin_iframe')
然后點擊即可,至此已經完成了登錄操作:
driver.find_element_by_xpath("//span[@id='img_out_1667650021']").click()
當然selenium的神奇之處遠不止于此,后續將繼續研究記錄,
零基礎學Java或Python的兄弟姐妹,資料干貨盡在我的公眾號:lunvey
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/258772.html
標籤:其他
