我需要在测试中创建一个新的量角器会话。
我试过了:
browser.get()
browser.quit()
browser.get()
但它返回错误:
失败:此驱动程序实例没有有效的会话ID(您是否调用了WebDriver.quit()?)并且可能不再使用。
我也尝试使用browser.createSession(),但它返回了我:
没有方法'createSession'
所以,我需要像restartBrowserBetweenTests选项之类的东西,但是我想在测试的任何部分调用。先感谢您。
答案 0 :(得分:4)
根据Using Multiple Browsers in the Same Test,您可以分叉一个新的驱动程序实例:
如果您正在测试两个浏览器需要与每个浏览器进行交互的应用 其他(例如聊天系统),你可以用量角器来做到这一点 在测试中随时随地动态创建浏览器。量角器 公开浏览器对象中的一个函数来帮助您实现这个目的:
browser.forkNewDriverInstance(opt_useSameUrl, opt_copyMockModules)
。 调用此方法将返回一个新的独立浏览器对象。
newBrowser = browser.forkNewDriverInstance();
browser.driver.createSession()
也可能具有相关性,具体取决于您要完成的任务。
答案 1 :(得分:0)
在我们的例子中,我们遇到了错误
失败:此驱动程序实例没有有效的会话ID(您是否调用了WebDriver.quit()?),并且可能不再使用。
使用时
browser.restart()
但是在我们的一个测试页对象中,有一个static
变量指向一个ElementFinder
对象。
// This line caused the error once the browser was restarted
private static readonly elementToFind = element(by.xpath("<someExpression>"));
// we changed it to
private elementToFind: ElementFinder = element(by.xpath("<someExpression>"));
结论:检查您的代码是否使用static
。