簡體   English   中英

使用python從硒鉻webdriver啟動時如何在隱身模式下添加擴展名

[英]How to add extension in incognito mode when launched from selenium chrome webdriver with python

我們正在使用selenium python webdriver做一些測試,我們需要以隱身模式打開一個url,並啟用一個已安裝的擴展,然后執行一些操作。

我的發現:

  • 在隱身模式下無法加載擴展程序
  • icgnito模式關閉時加載擴展程序

驗證了很多關於堆棧溢出的帖子,沒有任何效果。 嘗試以下代碼”

path = os.path.dirname(r"C:\Users\ab\AppData\Local\Google\Chrome\User Data\Default\Extensions\jfpmbokkdeapjommajdfmmheiiakdlgo\0.1.7_0\manifest.json")
options = webdriver.ChromeOptions()
options.add_argument('--incognito')
options.add_argument("--load-extension={path}")
driver = webdriver.Chrome(chrome_options=options, executable_path='C:\chromedriver_win32\chromedriver.exe')
driver.maximize_window()
driver.get(xxxxxxxx)

哪些拋出錯誤無法加載manifest.json丟失或不可讀。 但是我已經確定路徑是正確的。

有什么建議請在隱身模式下打開chrome驅動程序時如何加載擴展程序?

而是將所需的Cookie /擴展名作為chrome選項的一部分加載,而其他選項是使用chrome配置文件。 這篇文章中檢查我的答案

有關配置文件及其工作方式的更多信息,請參見此處

這是在隱身模式下打開擴展名的邏輯。

蟒蛇:

# driver.get("chrome://extensions/?id=extion_name_goes_here"); # <=== general snippet see below example
# driver.get("chrome://extensions/?id=jfpmbokkdeapjommajdfmmheiiakdlgo") 

# select allow in incognito mode checkbox
driver.execute_script("return document.querySelector('extensions-manager').shadowRoot.querySelector('#viewManager > extensions-detail-view.active').shadowRoot.querySelector('div#container.page-container > div.page-content > div#options-section extensions-toggle-row#allow-incognito').shadowRoot.querySelector('label#label input').click()");

請參閱我的答案在這個崗位上上面使用的JS更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM