Chromedriver在使用Selenium Grid和.net的特定机器上速度极慢

时间:2013-04-23 21:51:15

标签: webdriver mstest selenium-webdriver selenium-grid selenium-chromedriver

概述: Chromedriver在一台机器上正常工作,但在另外两台相同的机器上工作速度非常慢。

设定:

  • Selenium Webdriver使用.Net进行编码,使用Selenium Grid进行分发测试。正在Visual Studio 2010中使用MSTest以运行测试。
  • 作为集线器的64位Windows 7本地计算机
  • 我本地网络上的三台32位Win 7远程计算机(其中两台是虚拟计算机)都配置为节点。以下是用于启动远程计算机上的节点的命令:

    java -jar c:\ seleniumWebDriver \ seleniumGrid \ selenium-server-standalone-2.31.0.jar -role node -hub http://XXX.XXX.XXX.XXX:4444/grid/register -browser“browserName = chrome”,maxInstances = 4 -Dwebdriver.chrome。驱动= “C:\ seleniumWebDriver \ chromedriver.exe”

  • 驱动程序在代码中以这样的方式启动:

    DesiredCapabilities capability = new DesiredCapabilities(); capability.SetCapability(CapabilityType.BrowserName,browser); driver = new RemoteWebDriver(new Uri(hubUrl),capability);

  • 上面的变量“browser”和“hubUrl”通过在运行时构建的app.config文件传递。对于这种情况,浏览器= chrome。

问题:

  • 当我使用上面的命令将机器212(它是一个虚拟机)设置为chrome节点,然后从集线器启动脚本时,我在正确的远程机器上看到chrome start并正常运行。它每秒在5-10个命令之间。

  • 当我以相同的方式将机器78(虚拟机)或机器103(真实机器)设置为节点,然后从集线器启动脚本时,我看到节点正确启动了chrome。但是,它的运行速度非常慢,比如每秒或更少的1个命令。

其他信息: 就像我说的,在一台机器上镀铬工作正常,但在其他机器上,运行速度非常慢。当Firefox和IE配置为节点时,它们可以正常工作。

我将机器212(工作正常)与其他机器进行了比较,但无法找到差异。所有机器都使用'selenium-server-standalone-2.31.0.jar'和相同版本的ChromeDriver。

节点机器似乎没有过载。此外,这是一个非常一致的性能差异,似乎与网络或机器上的任何波动负载无关。

我的网络技术已经验证所有这些计算机在网络上配置相同。

以前有人见过这样的事吗?

编辑1:我今天登录,所有三台远程机器都慢慢运行chrome。在其中一个是正常的之前,但现在它们都很慢。

4 个答案:

答案 0 :(得分:32)

我遇到了一个类似的问题,其中chromedriver在某些机器上运行缓慢,结果证明是代理问题。在Chrome://设置>下更改代理设置>下禁用“自动检测设置” LAN设置>让我的Chrome驱动程序更快地执行命令。

答案 1 :(得分:8)

我的代理设置没有使用自动检测,但我发现以下帮助很多。启动驱动程序所需的时间从43秒下降到1秒

driver = new ChromeDriver(new ChromeOptions{Proxy = null}); 

答案 2 :(得分:0)

Bug link in chromedriver issues这是具有最低优先级的长期问题。但是随着更多用户投票支持,也许有人会修复它。也可以将其发布到Parsing of proxy configuration is not standard compliant中,该问题将很快修复。

答案 3 :(得分:-1)

此代码为我解决了macOS 10.14.3上的Chrome 75的问题

ChromeOptions options = new ChromeOptions();
options.setProxy(null);
driver = new ChromeDriver(options);