我们使用设置的selenium webdriver dll来运行我的自动化套件。在Firefox中运行测试时遇到此问题。 Firefox中的测试运行速度非常慢,加载页面需要3-4分钟,但是,当我使用Firefox浏览器手动在同一台机器上运行相同的测试时,我不会遇到这种慢。有时在Firefox上运行自动化时,我们也会收到“连接已重置”页面。此外,相同的测试在Chrome和IE中运行良好。
我们使用以下环境:
Firefox版本28,37(代理设置为使用系统设置)
Webdriver(dlls)版本2.45
Windows 7
之前我们曾经使用Firefox版本14,16在Windows XP中运行相同的设置,而Webdriver版本2.37,我们没有遇到此问题。
我们使用以下代码调用Firefox:
Proxy proxy = new Proxy();
proxy.Kind = ProxyKind.System;
FirefoxProfile profile = new FirefoxProfile();
profile.SetProxyPreferences(proxy);
RemoteWebDriver dr = new FirefoxDriver(new FirefoxBinary(@"C:\Program Files (x86)\Mozilla Firefox\firefox.exe"), profile, TimeSpan.FromSeconds(120));
dr.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(3));
dr.Manage().Window.Maximize();
dr.Manage().Cookies.DeleteAllCookies();
dr.Navigate().GoToUrl(WebSiteUrl);
剩下的测试步骤......
有人可以帮我解决这个问题。
提前致谢。
答案 0 :(得分:3)
这就是我解决“FirefoxDriver 非常慢”问题的方法:
FirefoxDriverService service = FirefoxDriverService.CreateDefaultService();
service.Host = "::1";
IWebDriver driver = new FirefoxDriver(service);
上述代码强制 geckodriver
使用 IPv6 协议,该协议与 UI 元素的交互速度快了许多倍。
答案 1 :(得分:0)
现在可能对您没有任何好处,但是Firefox 45和Webdriver 2.15遇到了同样的问题。变成问题是隐式等待设置。就我而言,我有:
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
这一行需要190秒(是的,超过3分钟!)执行。删除它可以将启动时间缩短到8秒以下!