之前寫過一篇博客:自動化測試如何解決驗證碼的問題。
介紹了驗證碼的幾種處理方式,最后一種就是通過Cookie跳轉過驗證碼,但講的不夠詳細。今天,就詳細的介紹一下這種方式。
准備工具:
------------------
fiddler
Python+selenium
------------------
以百度登錄為例。
驗證碼是漢字的,我想通過程序識別起來有點難度,也會比較麻煩。
接下來開始動手。
1、開啟Fiddler 工具,像這樣!
2、通過瀏覽器登錄正常登錄百度賬號。像這樣!
3、通過Fiddler獲取登錄請求的Cookie。找到Host為“passport.baidu.com”的URL,在右側窗口查看該請求的Cookie。
然后,找到重要的兩個參數“BAIDUID”和“BDUSS”。
4、編寫Selenium自動化測試腳本,跳過登錄。
from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.baidu.com") # 添加Cookie driver.add_cookie({'name':'BAIDUID','value':'AAAAAAAAAAAAAA:FG=1'}) driver.add_cookie({'name':'BDUSS','value':'AAAAAAAAAAAAAAAAAAAAAAAAAA'}) # 刷新頁面 driver.refresh() # 獲取登錄用戶名並打印 username = driver.find_element_by_class_name("user-name").text print(username) #關閉瀏覽器 driver.quit()
首先,訪問百度首頁,處於未登錄狀態。
然后,通過Selenium所提供add_cookie()方法添加Cookie信息。
最后,刷新頁面,現在已經是登錄狀態了,獲取登錄之后的用戶名並打印。
可取到NN網的cookies之后,分不出哪兩個是重要的參數,干脆就全部參數添加到cookies里面了,這樣居然可以了。
但另一個問題出了,Firefox崩潰了,如下圖
plugin container for firefox
轉載鏈接:https://jingyan.baidu.com/article/3aed632e21d2c0701180916c.html
plugin-container引發火狐瀏覽器崩潰的解決方案
火狐瀏覽器是用戶常用的瀏覽器之一,在使用過程中應該有用戶遇到過plugin-container.exe異常導致的瀏覽器崩潰,這種崩潰往往是由Flash造成的。本文介紹一種解決方案,希望對需要的同學有所幫助,也希望可以交流其他更好的手段。
方法/步驟
-
我們先來看一下plugin-container.exe導致的異常信息:
-
打開“我的電腦"->C盤->Program Files->Mozilla Firefox,知道到plugin-container.exe,並將該文件刪除:
-
關閉火狐瀏覽器並重啟瀏覽器,這時候一般就能解決這種崩潰,但是為了從根本上避免,我們還需要修改瀏覽器配置。
-
我們繼續操作,在Firefox瀏覽器地址欄輸入 about:config並回車:
-
在搜索框中輸入dom.ipc.plugins.enabled,找到“dom.ipc.plugins.flash.subprocess.crashreporter.enabled”將該值設置為false:
-
到此就結束了
至此,通過cookies跳過驗證碼登陸頁面,訪問網站的其它URL就實現了。好開心………
可以改進的1)添加cookies參數較多,完全可以用腳本自動添加的,我一個一個復制粘貼的,效率低下。下次改進。