将.crx加载到远程镀铬Selenium python中

时间:2016-05-10 12:01:35

标签: python google-chrome selenium selenium-chromedriver

我正在尝试使用selenium将我的扩展安装到远程计算机上。 我找到了一些代码片段可以使这成为可能,但我无法弄清楚如何让它工作。

到目前为止,我所尝试的是:

desired_cap = {'browser': 'Chrome', 'browser_version': '50.0', 'os': 'Windows', 'os_version': '10', 'resolution': '1366x768'}

def officialv1():
    url= 'loginurl'
        chop = webdriver.ChromeOptions()
        chop.add_extension('./Shoppingbuddy_v5.4.2.crx')
        driver = webdriver.Remote(command_executor=url, desired_capabilities=desired_cap, chrome_options=chop)

chrome_options=chop不合适,因为我不知道如何使用command_executordesired_capabilities参数将此命令推送到远程浏览器。

我很难告诉我的远程chrome使用本地文件安装扩展程序。 那么如何告诉我的远程和活动chrome,安装我本地脚本文件夹中的扩展名。

我找到了this question,它部分地回答了我的问题,但它并没有告诉我如何远程处理它。

1 个答案:

答案 0 :(得分:2)

以下是使用Chrome向远程服务器添加扩展程序的示例:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_extension(r'C:\Downloads\Adblock-Plus_v1.11.crx')

capabilities = options.to_capabilities()
capabilities.update({'browser_version': '50.0', 'os': 'Windows', 'os_version': '10', 'resolution': '1366x768'})

driver = webdriver.Remote("http://127.0.0.1:4444/wd/hub", desired_capabilities=capabilities)
driver.get('http://stackoverflow.com/')

请注意,最好将Log level设置为WARNING以阻止服务器在日志和控制台中编写扩展的二进制内容:

java -Dselenium.LOGGER.level=WARNING -jar selenium-server-standalone-2.53.0.jar