我有一个测试用例,其中有3个方法
Class
{
Method1();
Method2();
Method3()
}
现在,我想在IE中运行Method1(),在Chrome中运行Method2(),在Chrome中运行Method3()。我写了代码,它工作得很好。唯一的问题是它在Console中出现错误“org.openqa.selenium.remote.SessionNotFoundException:会话ID为空。在调用quit()之后使用WebDriver?”
在Method1()完成后,我退出了像
这样的驱动程序 driver.quit();
driver=null;
driver = new FirefoxDriver();
同样适用于Chrome,也是在Method2()完成后。
有人可以指导我为什么收到此消息以及解决方案是什么?
我不想使用Selenium网格。感谢
答案 0 :(得分:0)
根据您的解释,这是我所理解的: -
Method1()
适用于IE Method2()
适用于FF Method3()
适用于Chrome 为什么要使用新的WebDriver实例化结束代码?相反,当你创建一个像下面这样的结构时,它会更有意义。
Class {
WebDriver driver;
Method1() {
driver = new InternetExplorerDriver();
//code for IE goes here
driver.quit();
}
Method2() {
driver = new FirefoxDriver();
//code for FF goes here
driver.quit();
}
Method3() {
driver = new ChromeDriver();
//code for chrome goes here
driver.quit();
}
}
您的要求似乎与众不同。如果您想在不同的浏览器中测试一些代码,最好使用TestNG / JUnit等框架,或者为不同的浏览器指定不同的测试。
希望这会对你有所帮助。