Selenium調試時免登陸的2種方法


Selenium編寫用例的時候,需要不斷的運行調試debug,但正常情況會每次重新打開一個Chrome運行,是全新的瀏覽器,沒有任何歷史記錄和Cookie。如果你要完全運行所有測試用例,包括登陸,那這樣很好,如果你不想運行所有用例或是在調試,就很麻煩,下面介紹2個免登陸的方法。

方法一:通過加cookies免登陸
首先你要了解你的系統登陸后都會有哪些Cookie或session,這個最好不要猜不要自己試,直接問開發最對最直接。以百度為例,首先手動登陸,然后刷新頁面,看第一個請求的請求頭的Cookie,感覺如圖圈起來的比較像(這個也是我瞎猜的哈)。


輸入以下代碼運行:

from selenium import webdriver

chrome_driver = r"D:\code\python\selenium_ui_auto\driver\chromedriver.exe" # 你driver的路徑
driver = webdriver.Chrome(chrome_driver)

driver.get('http://www.baidu.com/')
# 添加Cookie
driver.add_cookie({'name': 'BAIDUID', 'value': '67F332038A56CC0A9B109'})
driver.add_cookie({'name': 'BIDUPSID', 'value': '67F332038A56CC0A9B109'})
driver.add_cookie({'name': 'H_PS_PSSID', 'value': '1423_3199_31428_31341_31270_31163_31472'})
driver.add_cookie({'name': 'BDUSS', 'value': 'hpRAAAAAAAAAAAAAAAAAAAAAAAJt4s16beLNefm'})
#再次打開頁面刷新Cookie
driver.get('http://www.baidu.com/')

 

運行后,可以看到已經是登陸狀態了。


方法二:設置用戶數據目錄免登陸
正常每次運行Selenium打開Chrome,數據目錄都是臨時,退出后就清了。那我們可以設置一個用戶數據目錄,這樣以后selenium打開的Chrome,就跟我們正常使用打開的Chrome一樣,是有歷史數據的了。

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(r'--user-data-dir=D:\ChromeUserData') # 設置用戶文件夾,可免登陸
chrome_driver = r"D:\code\python\selenium_ui_auto\driver\chromedriver.exe" # 你driver的路徑
driver = webdriver.Chrome(chrome_driver, options=chrome_options)

 

通過以上代碼打開瀏覽器,我們先手動登陸一下,如果有記住密碼之類的就點選上。
關閉瀏覽器,再次運行以上代碼,就是已登陸的狀態了


注意,Cookie和Session都是有有效期的,所以一定時間后還是需要再次登陸的。

 

---------------------------------------------------------------------------------

關注微信公眾號(測試工程師小站)即可在手機上查閱,並可接收更多測試分享,發送【測試資料】更可獲取百G測試教程~


免責聲明!

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



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