火狐瀏覽器是用戶經常使用的瀏覽器之一,在使用過程當中應該有用戶遇到過plugin-container.exe異常致使的瀏覽器崩潰,這種崩潰每每是由Flash形成的。本文介紹一種解決方案,但願對須要的同窗有所幫助,也但願能夠交流其餘更好的手段。
以前寫過一篇博客:自動化測試如何解決驗證碼的問題。html
介紹了驗證碼的幾種處理方式,最後一種就是經過Cookie跳轉過驗證碼,但講的不夠詳細。今天,就詳細的介紹一下這種方式。web
準備工具:windows
------------------瀏覽器
fiddlercookie
Python+seleniumdom
------------------工具
以百度登陸爲例。測試
驗證碼是漢字的,我想經過程序識別起來有點難度,也會比較麻煩。網站
接下來開始動手。ui
一、開啓Fiddler 工具,像這樣!
二、經過瀏覽器登陸正常登陸百度帳號。像這樣!
三、經過Fiddler獲取登陸請求的Cookie。找到Host爲「passport.baidu.com」的URL,在右側窗口查看該請求的Cookie。
而後,找到重要的兩個參數「BAIDUID」和「BDUSS」。
四、編寫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.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參數較多,徹底能夠用腳本自動添加的,我一個一個複製粘貼的,效率低下。下次改進。