Py学习  »  Python

使用python从selenium chrome webdriver启动时,如何在匿名模式下添加扩展

asp • 6 年前 • 1890 次点击  

我们正在使用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,或者丢失或不可读。不过,我已经确定路径是正确的。

有什么建议,请如何加载扩展,而打开铬驱动器在隐名模式?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53236
文章 [ 1 ]  |  最新文章 6 年前
supputuri
Reply   •   1 楼
supputuri    7 年前

相反,你加载所需的cookies/扩展作为你的chrome选项的一部分,另一个选项是使用chrome配置文件。检查我的答案 this post

有关配置文件及其工作方式的更多信息,请参阅 here

下面是在隐名模式下打开扩展的逻辑。

# 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()");

请参阅我的答案 this post 有关上面使用的js的更多信息。