java - 我试图关闭 Webdriver 上的浏览​​器实例,但无法这样做

标签 java eclipse selenium

package erewards2;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class login_sib2 {

    public static void main(String[] args) {

        FirefoxDriver d1 = new FirefoxDriver();

                 d1.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
                 d1.get("https://sib3.erewardsredeem.com/fm/customer.html?action=userLogin");
                 d1.manage().window().maximize();
                 WebElement e4 = d1.findElementByLinkText("Login");
                 e4.click();
                 d1.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
                 WebElement e1 = d1.findElement(By.id("showmemberid"));
                 e1.sendKeys("2800000091");
                 WebElement e2 = d1.findElementById("showmemberpwd");
                 e2.sendKeys("Miquser1");
                 WebElement e3 =  d1.findElementByClassName("loginbtn");
                 e3.click();

                WebElement e5 = d1.findElementByLinkText("Logout");

                 e5.click();



                Alert a1 = d1.switchTo().alert(); //web based alert
                WebDriverWait wait = new WebDriverWait(d1,10);
                wait.until(ExpectedConditions.alertIsPresent()).accept();
                a1.accept();

             System.out.println("test1");

                //close Firefox
                d1.close();
                System.out.println("test2");   
                // exit the program explicitly
                System.exit(0);
                System.out.println("test3");
    }

}

我添加了 system.out println 行用于测试目的,发现我的代码无法从 Test1 语句完全执行。下面是我在 Eclipse IDE 上遇到的异常。

Exception in thread "main" org.openqa.selenium.NoAlertPresentException: No alert is present (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 13.82 seconds Build info: version: '2.41.0', revision: '3192d8a', time: '2014-03-27 17:18:15' System info: host: 'pcs-PC', ip: '192.168.1.64', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_25' Session ID: 59fe366a-5fdc-4763-a6f2-0860bf1378be Driver info: org.openqa.selenium.firefox.FirefoxDriver Capabilities [{platform=XP, acceptSslCerts=true, javascriptEnabled=true, cssSelectorsEnabled=true, databaseEnabled=true, browserName=firefox, handlesAlerts=true, browserConnectionEnabled=true, webStorageEnabled=true, nativeEvents=false, rotatable=false, locationContextEnabled=true, applicationCacheEnabled=true, takesScreenshot=true, version=30.0}] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:610) at org.openqa.selenium.remote.RemoteWebDriver$RemoteAlert.accept(RemoteWebDriver.java:910) at erewards2.login_sib2.main(login_sib2.java:40)

最佳答案

看起来在到达关闭语句之前就失败了。

尝试像这样构建代码:

FirefoxDriver d1 = new FirefoxDriver();
try {
    // steps
}
finally {
    d1.close();
}

这将保证执行 close 语句。

关于java - 我试图关闭 Webdriver 上的浏览​​器实例,但无法这样做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29092520/

相关文章:

java - 欧拉计划 #14 : Why is my TreeMap algorithm slower than brute force?

java - 获取对象字段先前的值 hibernate JPA

c# - 根据需要传递给 chromedriver 功能Capabilities c#

如果测试的应用程序在 80 以外的端口上运行,Selenium 会拒绝连接

java - 在 Spring Junit 测试中,如何使用默认 rollback=true 测试级联操作

java - 如何删除传递给 Java 方法的对象?

eclipse - 在 Eclipse 中与 JUnit 和 Scalatest 一起设置 Scala 项目

eclipse - 过早调用 context.getApplication()?

java - 构建如何使用 Maven 自动与 Eclipse 一起工作

java - 尝试使用 Selenium WebDriver for Java 从 HTML 表获取数据