Selenium Grid测试只运行一次

时间:2014-09-18 09:11:35

标签: c# testing selenium-grid

我有一个虚拟机,我将其用作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网格的新手,并且不明白为什么测试不会运行多次。任何有关此查询的帮助将不胜感激。

1 个答案:

答案 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
相关问题