瀏覽器規避監測 selenium 接管chrome 瀏覽器
參考博文
https://www.cnblogs.com/lovealways/p/9813059.html
在使用selenium進行自動化測試中我們有時會遇到這樣的情況:
我們需要手動打開瀏覽器,進入到所需的頁面,執行一些手動任務,如輸入表單、輸入驗證碼,登陸成功后,然后再開始運行自動化腳本。
這種情況下如何使用selenium來接管先前已打開的瀏覽器呢?
這里給出Google Chrome瀏覽器的解決方案。
我們可以利用Chrome DevTools協議。它允許客戶檢查和調試Chrome瀏覽器。
打開cmd,在命令行中輸入命令:
chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"
對於-remote-debugging-port值,可以指定任何打開的端口。
對於-user-data-dir標記,指定創建新Chrome配置文件的目錄。它是為了確保在單獨的配置文件中啟動chrome,不會污染你的默認配置文件。
還有,不要忘了在環境變量中PATH里將chrome的路徑添加進去。
此時會打開一個瀏覽器頁面,我們輸入百度網址,我們把它當成一個已存在的瀏覽器:
from selenium import webdriver from selenium.webdriver.chrome.options import Options # 谷歌瀏覽器安裝目錄下執行 # chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile" # 在打開的瀏覽器中輸入 www.baidu.com chrome_options = Options() chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222") chrome_driver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe" driver = webdriver.Chrome(chrome_driver, options=chrome_options) # 輸出百度一下你就知道 表示接管成功了 print(driver.title)