Selenium grid2:如何在远程服务器上关闭和打开浏览器

Selenium grid2:如何在远程服务器上关闭和打开浏览器,selenium,webdriver,selenium-grid,Selenium,Webdriver,Selenium Grid,我有一个测试,我需要登录,关闭浏览器并再次打开它,然后检查页面上的内容 在使用远程集线器设置运行webdriver时,如何执行此操作?还是我必须在没有遥控器的情况下运行 测试是这样的: 打开浏览器 登录 关闭浏览器 再次打开浏览器 检查是否记住登录名 实现这一点的过程将非常类似于非网格环境中的解决方案。请注意,下面的代码是为Java编写的,但我无法想象C与Java有多大不同 WebDriver driver = new RemoteWebDriver("hubURL", desiredCapab

我有一个测试,我需要登录,关闭浏览器并再次打开它,然后检查页面上的内容

在使用远程集线器设置运行webdriver时,如何执行此操作?还是我必须在没有遥控器的情况下运行

测试是这样的:

  • 打开浏览器
  • 登录
  • 关闭浏览器
  • 再次打开浏览器
  • 检查是否记住登录名

  • 实现这一点的过程将非常类似于非网格环境中的解决方案。请注意,下面的代码是为Java编写的,但我无法想象C与Java有多大不同

    WebDriver driver = new RemoteWebDriver("hubURL", desiredCapabilities);
    driver.manage().deleteAllCookies();
    driver.get("http://path/to/page");
    //login to application
    driver.quit(); //This will close the browser on the remote machine
    
    //Now to try it again
    
    driver = new RemoteWebDriver("hubURL", desiredCapabilities);
    driver.get("http://path/to/page");
    Assert.assertTrue(some element that is not on the login page but is on the page after is present);
    driver.quit();
    

    大概你在测试一些饼干。不幸的是,除非您正确地约束它,否则无法保证任何特定节点都会执行任何请求。您需要有一个节点公布客户端随后请求的唯一功能,以确保集线器每次都将路由到该节点。但是,很自然,如果该节点出现故障,您将没有任何其他节点可以为该请求提供服务。

    这是一个好主意,我的问题就是我不知道下一个浏览器将在哪个节点上打开。当然,我可以定义一个自定义功能来查找。