繁体   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