aei*_*n83 5 java webdriver selenium-webdriver
我在获取正确的驱动程序实例时遇到问题.以下是我的设置
public class SeleniumBase{
public static WebDriver driver;
public static void setUp(url,browser,port){
driver = new FirefoxDriver();
}
public static void tearDown(){
driver.manage().deleteAllCookies();
driver.close();
driver.quit();
}
}
public class BuildTest extends SeleniumBase{
@BeforeClass
public static void seleniumSetup(){
try{
// read properties
url = prop.getProp("baseUrl");
browser = prop.getProp("browser");
port = prop.getProp("port");
}
SeleniumBase.setUp(url,browser,port);
waitForLoginPage();
App.login();
}
@AfterClass
public static void seleniumTearDown(){
App.logOut();
SeleniumBase.tearDown();
}
}
@RunWith(Suite.class)
@Suite.SuiteClasses(
{
Test1.class,
Test2.class
})
public class SmokeSuite {
}
Run Code Online (Sandbox Code Playgroud)
现在,对于Test1.class,一切正常,但是当从套件调用Test2.class时,使用setUp方法创建新的驱动程序实例,但App.Login()抛出错误说 "The FirefoxDriver cannot be used after quit() was called"
我的设置/拆解出了什么问题..?
使用时driver.quit();,请关闭所有打开的浏览器并退出驱动程序。但是,您的driver未设置为,但仍处于实例 到null之间的空白中。WebDrivernull
为什么这很重要?因为当您调用driver = new FirefoxDriver();构造函数时,它会“作弊”并交给您旧WebDriver实例,该实例被认为是可行的,因为它看不到null,而不是初始化新实例。
调用 quit 后分配null应该可以解决问题。
public void tearDown() {
driver.quit();
driver = null;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4165 次 |
| 最近记录: |