我有一个测试,我需要登录,关闭浏览器并再次打开它,然后检查页面上的内容。
使用远程集线器设置运行 webdriver 时如何执行此操作?还是我必须在没有遥控器的情况下运行它?
测试是这样的:
- 打开浏览器
- 登录
- 关闭浏览器
- 再次打开浏览器
- 检查登录是否被记住
我有一个测试,我需要登录,关闭浏览器并再次打开它,然后检查页面上的内容。
使用远程集线器设置运行 webdriver 时如何执行此操作?还是我必须在没有遥控器的情况下运行它?
测试是这样的:
实现这一点的过程将与非网格环境中的解决方案非常相似。请注意,以下代码是为 Java 编写的,但我无法想象 C# 会有很大不同。
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();
大概你正在测试一些 cookie 的东西。不幸的是,不能保证任何特定节点都会执行任何请求,除非您正确限制它。您需要让一个节点通告客户端随后请求的唯一功能,以确保集线器每次都会路由到该节点。但是,很自然,如果该节点出现故障,您将没有任何其他节点可以为请求提供服务。