【问题标题】:Selenium ChromeDriver: Adding chrome extension does not work on GridSelenium ChromeDriver:添加 chrome 扩展在 Grid 上不起作用
【发布时间】:2017-06-02 06:15:48
【问题描述】:

我正在尝试使用带有 ModHeader 扩展的 Chrome 在 selenium 网格上运行测试。

使用 Florent B 在chrome modify headers in selenium java, i am able to add extension .crx through script 中提供的解决方案,扩展在本地加载良好

但我无法找出扩展未在网格节点上加载的原因。运行以下代码时,Infact 浏览器甚至不会打开。

你能帮忙吗?下面的代码供您参考。

问候, 普拉提克

private static RemoteWebDriver UseSeleniumGrid()
{
    var path =
        Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName +
        "\\Local\\Google\\Chrome\\User Data\\Default\\Extensions\\idgpnmonknjnojddfkpgkljpfnnfcklj\\extension_2_1_1.crx";
    var options = new ChromeOptions();
    options.AddExtension(Path.GetFullPath(path));

    var capability = new DesiredCapabilities();
    capability.SetCapability(ChromeOptions.Capability, options);

    capability.SetCapability("browserName", "chrome");

    return new CorrelatedDriver(
        new Uri("http://localhost:4444/wd/hub"), capability, RemoteTimeout);
}

【问题讨论】:

    标签: google-chrome selenium google-chrome-extension selenium-chromedriver selenium-grid


    【解决方案1】:

    设法找到解决方案。

    错误在行中:

    var capability = new DesiredCapabilities();
    capability.SetCapability(ChromeOptions.Capability, options);
    

    根据https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/7043 在 SeleniumDriver 升级后无法以编程方式设置 Chrome 选项。解决方案是将选项转换为所需的功能。

    下面的工作代码:

    private static RemoteWebDriver UseSeleniumGrid()
    {
        var path =
            Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName +
            "\\Local\\Google\\Chrome\\User Data\\Default\\Extensions\\idgpnmonknjnojddfkpgkljpfnnfcklj\\extension_2_1_1.crx";
        var options = new ChromeOptions();
        options.AddExtension(Path.GetFullPath(path));
    
        var capability = options.ToCapabilities() as DesiredCapabilities;
    
        capability.SetCapability("browserName", "chrome");
    
        return new CorrelatedDriver(
                new Uri("http://localhost:4444/wd/hub"), capability, RemoteTimeout);
    }
    

    【讨论】:

      猜你喜欢
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 2017-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多