硒/java phantomjs:
在第一次运行时, driver.get(loginURL)
,获取登录URL。
在第二次运行中,driver.get(loginURL)
转到主页,而不是登录页面。当然,它找不到登录页面的元素。
(场景执行可能会失败,并在末尾注销我的执行)
有帮助吗?有什么想法,为什么会发生这种情况?
谢谢
代码部分和异常:
...
WebDriver driver;
PhantomJSDriverService phantomService = PhantomJSDriverService.createDefaultService();
System.setProperty("phantomjs.binary.path", "browserDrivers/phantomjs.exe");
driver = new PhantomJSDriver();
driver.get("https://xxxxxx/yy/");
System.out.println("Url :" + driver.getCurrentUrl());
WebElement loginField = driver.findElement(By.id("txt-username"));
WebElement passwdField = driver.findElement(By.id("txt-password"));
...
控制台打印输出:
第1次运行:url:https://xxxxxx/yy/login(正确,并且还找到下一个webelements),下一步失败
第2次运行:url:https://xxxxxx/yy/home(不正确的登录页面https://xxxxxx/yy/login)>
异常抛出:org.openqa.selenium.nosuchelementException: {" errormessage":"无法找到具有ID'TXT-username'的元素'
对于适当的清理(在情况下失败后注销),您可以实现拆卸方法,该方法在测试类中的每个测试后执行,例如。这样(使用Junit4):
@org.junit.After
public void tearDown() {
//your code for performing logout
//....
//Close the current window, quitting the browser
//if it's the last window currently open.
if (driver != null) {
driver.close();
}
}