Selenium geckodriver 执行 findElement 比 chromedriver (.Net) 慢 10 倍

Nic*_*ck 7 c# selenium mstest geckodriver

抱歉没有找到类似的问题,也许有人可以提供帮助。

由于额外的要求,我们不仅要使用 Chrome 还要使用 Firefox 来测试我们的项目。当我们简单地将测试上下文更改为 Firefox 时,结果发现所有 findElement 调用花费的时间是 Chrome 的 10 倍。所有的测试都被彻底破坏了。我们尝试使用不同的测试机器,但结果是一样的。该项目位于 Core .Net 上。对于测试,我们使用 MSTest V2、Firefox 63(64 位)和 Geckodriver 0.22(64 位)。

非常感谢任何帮助。

gar*_*ang 10

通过参考上一个答案,我的问题已通过以下代码解决。

string geckoDriverDirectory = "Path of geckodriver.exe"
FirefoxDriverService geckoService = 
FirefoxDriverService.CreateDefaultService(geckoDriverDirectory);
geckoService.Host = "::1";
var firefoxOptions = new FirefoxOptions();
firefoxOptions.AcceptInsecureCertificates = true;
Driver = new FirefoxDriver(geckoService, firefoxOptions);
Run Code Online (Sandbox Code Playgroud)

  • 天哪。我只是复制粘贴它,它使我的代码速度提高了 100 倍。另请注意,如果 geckodriver 在您的路径中,您可以创建 `geckoService` 而无需指定 geckodriver 的目录。 (2认同)

Nic*_*ck 2

\n

是的。您\xe2\x80\x99 肯定会遇到属于.NET Core 一部分的性能问题。它不会在 Chrome、IE 或 Edge 上发生,因为每个浏览器的驱动程序可执行文件(与 geckodriver 不同)都会侦听 IPv4 和 IPv6 环回地址。如果您使用 .NET 将 \xe2\x80\x9c::1\xe2\x80\x9d 指定为 geckodriver 的主机,问题就会消失。

\n
\n\n

参考https://github.com/SeleniumHQ/selenium/issues/6597

\n