天天看點

selenium還能這麼玩:連接配接手動打開的浏覽器

文章目錄

  • ​​手工打開浏覽器​​
  • ​​浏覽器配置參數​​
  • ​​快捷方式設定參數​​
  • ​​selenium 連接配接浏覽器​​

測試和爬蟲對selenium并不會陌生,現有的教程已經非常多。但是因為 selenium 封裝的方法比較底層,是以靈活性非常高,我們可以基于這種靈活性來實作非常豐富的定制功能。

這篇文章介紹一個操作,可以讓 selenium 連接配接我們手動打開的浏覽器。他的應用場景主要是:你可以通過手工先實作一些自動化難處理的操作,讓 selenium 繞過這些複雜操作,然後再執行自動化。

自動化的時候經常頭痛的掃碼登入,可以通過這種方式繞過,短期無法解決的驗證碼的識别,也可以通過這種方式繞過。

手工打開浏覽器

可能有的小夥伴不知道,打開浏覽器有兩種方式:圖示點選和指令行運作。

圖示點選不用多說,我們經常使用這種方式打開浏覽器。指令行方式允許我啰嗦一句,找到浏覽器的安裝目錄,在安裝目錄中輸入 chrome.exe 就可以了。 比如我的 chrome 浏覽器安裝在 C:\Program Files (x86)\Google\Chrome\Application 這個路徑,則在這個目錄下打開 cmd 指令行,輸入 chrome.exe,就可以打開一個浏覽器。

selenium還能這麼玩:連接配接手動打開的浏覽器

浏覽器配置參數

我們還可以在浏覽器打開的時候設定額外的參數,為它提供不同的功能。 通過 selenium 連接配接浏覽器,需要用到兩個參數 --remote-debugging-port 和 --user-data-dir ,其他 chrome 參數如果感興趣可以檢視 ​​peter.sh 的部落格​​​, 英語不好的可以看 中文版。

  • ​--remote-debugging-port​

    ​ 這個參數允許我們通過遠端的方式連接配接,selenium 當然也可以。
  • ​--user-data-dir​

    ​ 這個參數指定一個獨立的目錄存放産生的使用者資料,在連接配接時也要設定,否則會失效。

現在我們可以通過以下指令行打開浏覽器:

chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenium\ChromeProfile"      

打開後做兩件事情:

1、在浏覽器位址欄輸入 http://localhost:9222/json/list ,可以檢視到浏覽器的一些資訊。

2、打開本地的 C:\selenium\ChromeProfile 目錄,會出現很多子檔案。

selenium還能這麼玩:連接配接手動打開的浏覽器

快捷方式設定參數

手工打開用指令行比較用得少,界面照樣可以配置參數。在 chrome 的快捷方式上右擊,選擇屬性,快捷方式的目标欄後面加空格加上:

--remote-debugging-port=9222 --user-data-dir="C:\selenium\ChromeProfile"      
selenium還能這麼玩:連接配接手動打開的浏覽器

現在,單擊快捷方式打開的浏覽器也可以通過遠端調試了。

selenium 連接配接浏覽器

有了遠端調試位址,selenium 連接配接浏覽器就變的很簡單,隻需要加 2 行代碼。 建立一個選項,綁定debuggerAddress 遠端調試位址。 此時就可以用 selenium 控制之前手工打開的浏覽器了。

from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
driver = webdriver.Chrome(options=chrome_options)
print(driver.title)      

效果:

  • 你已經閱讀完本文所有内容。
  • 相信你一定是個耐心和踏實的人,也是一個可交的朋友。