我有一个虚拟机,我将其用作Selenium Grid Hub和Node。
Hub设置通过bat文件运行,如下所示;
cd c:\Automated Tests\Selenium\
java -jar selenium-server-standalone-2.43.0.jar -role hub -hubhost 'my.ip.address' -port 4444
节点设置通过bat文件运行,如下所示;
cd c:\Automated Tests\Selenium\
java -jar selenium-server-standalone-2.43.0.jar -port 5555 -role node -nodehost 'my.ip.address' hub http://'my.ip.address'/grid/register -browser "browserName=firefox,version=32.0.1,platform=WINDOWS" -nodeTimeout 600
我有一个简单的c#测试,可以快速搜索谷歌,然后关闭浏览器,如下所示;
[Test]
public void Main()
{
DesiredCapabilities capability = DesiredCapabilities.Firefox();
capability.SetCapability(CapabilityType.BrowserName, "firefox");
capability.SetCapability(CapabilityType.Version, "32.0.1");
capability.SetCapability(CapabilityType.Platform, "WINDOWS");
IWebDriver driver = new RemoteWebDriver(new Uri("http://my.ip.address:4444/wd/hub"), capability);
ISelenium selenium = new WebDriverBackedSelenium(driver, "https://www.google.co.uk/?gfe_rd=cr&ei=rAgXVJmiKeLL8gflvoGgAw");
selenium.Start();
selenium.Open("/");
selenium.SelectWindow("null");
selenium.Type("id=gbqfq", "Test");
selenium.Click("id=gbqfb");
driver.Close();
当我在visual studio中运行测试时,测试将成功运行并按预期传递,但是,如果我第二次运行测试,我总是会超时并且测试总是失败。
消息; OpenQA.Selenium.WebdriverException:对URL HTTP://' my.ip.address' / wd / hub / session的远程WebDriver服务器的HTTP请求在60秒后超时。 ----> System.Net
在消息中的链接后,我得到了另一条消息;
HTTP错误:500
访问/ wd / hub / session时出现问题。原因是:
org.openqa.grid.common.exception.GridException:无法从请求中提取功能
我是编码和Selenium网格的新手,并且不明白为什么测试不会运行多次。任何有关此查询的帮助将不胜感激。
答案 0 :(得分:1)
发现我在测试结束时没有处理我的会话。一旦我完成了这项工作,我就可以多次运行我的测试而没有问题。
[Test]
public void Main()
{
DesiredCapabilities capability = DesiredCapabilities.Firefox();
capability.SetCapability(CapabilityType.BrowserName, "firefox");
capability.SetCapability(CapabilityType.Version, "32.0.1");
capability.SetCapability(CapabilityType.Platform, "WINDOWS");
IWebDriver driver = new RemoteWebDriver(new Uri("http://10.222.4.69:4444/wd/hub"), capability);
ISelenium selenium = new WebDriverBackedSelenium(driver, "https://www.google.co.uk/?gfe_rd=cr&ei=rAgXVJmiKeLL8gflvoGgAw");
selenium.Start();
selenium.Open("/");
selenium.SelectWindow("null");
selenium.Type("id=gbqfq", "Test");
selenium.Click("id=gbqfb");
driver.Close();
driver.Quit();//added this
driver.Dispose();//added this