2011-03-11 58 views
4

我在VS2010测试项目中有一个简单的Selenium测试,如下所示。Selenium测试在“服务器没有响应”错误的构建服务器上失败

[TestMethod] 
public void MyTestInIE8() 
{ 
    IWebDriver driver = new InternetExplorerDriver(); 
    try 
    { 
     driver.Navigate().GoToUrl("http://localhost/MyMVC/ABC/DoStuff"); 
     driver.FindElement((By.Id("Name"))).SendKeys("John"); 
     //... run rest of the test 
    } 
    finally 
    { 
     driver.Quit(); 
    } 
} 

这在本地服务器上运行良好。但是,在构建服务器上,它会失败并显示以下消息。 ...抛出异常:OpenQA.Selenium.WebDriverException:服务器对url http://localhost:4444/session/5e5e9b7a-e05c-40d8-9a20-9cab138b2b87没有响应。

问题似乎是在finally子句中调用Quit()方法。我尝试传入一个已知的端口号,即InternetExplorerDriver(8080),但它没有任何区别。 Firefox驱动程序可以在本地和构建服务器上正常运行。我发现有人报告类似的问题,但没有找到工作解决方案。 http://groups.google.com/group/webdriver/msg/4347971da4d96e97

这是我的配置。 Windows 7 professional SP1,64位。
Webdriver - selenium-dotnet-2.0b2。
IE8。

我的构建服务器是带有IE8的Windows Server2008 R2 Standard。
谢谢。

+0

问题是否解决。即使我在同一个环境中也面临同样的问题。 – Chidambaram 2011-05-02 11:02:56

回答

5

Internet Explorer驱动程序需要对project wiki中所述的IE进行一些配置。您需要确保浏览器在您的构建服务器上正确配置。

最近更新了Selenium项目,在IE驱动程序配置不正确的情况下抛出了更多有用的错误。更新到2.0rc2会给你这个更有用的错误。

+0

按照你的建议做了,现在它给出错误,System.InvalidOperationException:意外的错误启动Internet Explorer。所有区域的保护模式必须设置为相同的值(启用或禁用)。 (NoSuchDriver)。我在生成服务器上安装了IE 9。尝试启用所有区域以及禁用所有区域。缩放设置为100%。 OpenQA.Selenium.WebDriverException:服务器没有响应url http:// localhost:7055/hub/session/feb99703-822e-4b59-892a-884e3d28b66 ... – Redzon 2011-06-08 16:01:41

+1

我们发现用于运行构建的a/c未在代理服务器上进行身份验证,而我自己的帐户是。代理服务器可能已经进入了图片,因为我们最近开始使用CDN来下拉jQuery。因此,绕过代理服务器(在浏览器上使用Internet选项)对问题进行了排序。 – Redzon 2011-07-01 08:41:16

3

我也有这个问题,我发现的解决方案是在对元素进行操作之前,先使用FindElement()方法等待一段时间。

事情是这样的:

var element = driver.FindElement(By.Id("Name")) 
Thread.Sleep(200); 
element.SendKeys("John"); 

显然有造成驾驶员一些竞争条件。无论如何,这是我的猜测。

相关问题