1

我试图在远程 FireFox 驱动程序上加载 JSErrorCollector,但是,扩展程序不会加载,但是当使用本地驱动程序时,一切正常。

我以与本地计算机相同的方式将插件文件放置在远程计算机上,但是它只是不加载。

本地设置(有效):

    private IWebDriver CreateLocalFirefoxDriver()
    {
        var seleniumFirefoxCapabilities = DesiredCapabilities.Firefox();
        var seleniumFirefoxProfile = new FirefoxProfile();

        seleniumFirefoxProfile.AddExtension(@"C:\ReportingQA\JSErrorCollector.xpi");
        seleniumFirefoxProfile.EnableNativeEvents = true;

        seleniumFirefoxCapabilities.SetCapability(FirefoxDriver.ProfileCapabilityName, seleniumFirefoxProfile);

        return new FirefoxDriver(seleniumFirefoxCapabilities);
    }

远程设置(不起作用)

    private IWebDriver CreateRemoteWebDriver()
    {
        const string seleniumRemoteUrl = "http://***:4444/wd/hub/";

        var seleniumFirefoxProfile = new FirefoxProfile();
        seleniumFirefoxProfile.AddExtension(@"C:\ReportingQA\JSErrorCollector.xpi");
        seleniumFirefoxProfile.EnableNativeEvents = true;

        var seleniumFirefoxCapabilities = DesiredCapabilities.Firefox();
        seleniumFirefoxCapabilities.SetCapability(FirefoxDriver.ProfileCapabilityName, seleniumFirefoxProfile);

        return new RemoteWebDriver(new Uri(seleniumRemoteUrl), seleniumFirefoxCapabilities);
    }

那么,这里有什么问题?

4

1 回答 1

0

对于 selenium 2.43.1 网格中的基于 java 的测试,我遇到了同样的情况。在我的情况下,原因似乎在于扩展在节点磁盘上的传输和写入方式。当我在 windows 上运行测试并且网格节点在 linux 上时,扩展传输失败。

简而言之:扩展文件得到错误的文件名并被放置在节点上匿名配置文件中的错误目录中。有关详细信息,请参阅我在 selenium 提交的问题:https ://code.google.com/p/selenium/issues/detail?id=8254

要检查您的配置文件是如何传输的,只需在调试模式下运行测试并在创建 RemoteWebDriver 实例后放置一个断点。然后 ssh 到网格节点文件夹:/tmp/anonymous[hash]webdriver-profile.

  • 如果您的配置文件放在extensions子目录中,您可能还有其他问题。
  • 如果您的个人资料文件直接放置在/tmp/anonymous[hash]webdriver-profile并且具有“扁平”文件名,就像"extensions\JSErrorCollector@jsourcerer.com\build.sh"它们不起作用并且您遇到与我相同的问题。
于 2014-12-04T22:37:42.867 回答