我正在使用SeleniumHq网站上的示例代码 - 但在调试模式下,性能很差。
在发布模式下,整个测试大约需要6秒钟(包括启动和关闭IE) 在调试模式下需要65秒?
示例代码只是:
[Test]
public void testBrowser()
{
// Do something here
IWebDriver driver = new InternetExplorerDriver();
//Notice navigation is slightly different than the Java version
//This is because 'get' is a keyword in C#
driver.Navigate().GoToUrl("http://www.google.com");
IWebElement query = driver.FindElement(By.Name("q"));
query.SendKeys("Cheese");
System.Console.WriteLine("Page title is: " + driver.Title);
// TODO add wait
driver.Quit();
}
我在ie8中尝试过并且具有相同的性能。 Firefox很好 - 但我的客户使用IE,所以我坚持对它进行测试。另外 - 如果我使用Selenium RC,我也没有同样的问题。
注意 - 我正在使用.Net 4和webDriver.dll的最新版本(2.16)(在64位Windows 7机器上运行)
答案 0 :(得分:27)
对我来说,修复是从https://code.google.com/p/selenium/downloads/list切换到InternetExplorerDriver.exe
的32位版本
现在看似名为IEDriverServer
,但如果您只是将其重命名为InternetExplorerDriver.exe
,则会有效。
答案 1 :(得分:12)
检查'prefer 32 bit'未在构建属性中检查。如果是,并且您正在使用64位IE驱动程序,它将像哮喘病一样运行。
答案 2 :(得分:2)
使用C#,NUnit,C#webdriver客户端和IEDriverServer,我最初遇到输入速度慢的问题(例如,将密钥发送到输入框需要大约5秒钟的密钥,或点击按钮同样的延迟) 。
然后,在读完这个帖子之后,我切换到了32位IEDriverServer,这似乎解决了这个问题。
但是今天我正在尝试使用InternetExplorerOptions对象,以便根据此文档在IE上设置一些选项:
https://code.google.com/p/selenium/wiki/InternetExplorerDriver
根据文档,我创建了值为0的注册表值HKCU \ Software \ Microsoft \ Internet Explorer \ Main \ TabProcGrowth,以便使用ForceCreateProcessApi = true和BrowserCommandLineArguments =“ - private”。
这样做之后,我注意到输入缓慢的问题又回来了。我对我的代码进行了一些更改,但在将所有这些更改回来后,问题仍然存在。但是,当我删除上述注册表项时,输入已恢复到全速(无延迟)。