Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我如何确定为什么我的;事后诸葛亮;注释方法不起作用?_Java_Selenium_Selenium Webdriver_Testng - Fatal编程技术网

Java 我如何确定为什么我的;事后诸葛亮;注释方法不起作用?

Java 我如何确定为什么我的;事后诸葛亮;注释方法不起作用?,java,selenium,selenium-webdriver,testng,Java,Selenium,Selenium Webdriver,Testng,根据browserclose()方法,应在操作结束时关闭Internet Explorer。但它并没有结束 代码如下: 多重测试: <suite name="TestingSuite"> <test name="Tester"> <classes> <class name="framework2.NewTest"/> <class name="framework2.New

根据browserclose()方法,应在操作结束时关闭Internet Explorer。但它并没有结束

代码如下:

多重测试:

<suite name="TestingSuite">
    <test name="Tester">
        <classes>
            <class name="framework2.NewTest"/>
            <class name="framework2.NewTest2"/>
        </classes>
    </test> 
</suite>
NewTest2.java:

package framework2;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.testng.annotations.Test;
public class NewTest2 {
    @Test
    public void OpenYahooMail(){
        WebDriver driver = new InternetExplorerDriver();
        System.setProperty("WebDriver.ie.driver", "C:\\Users\\rprem\\Downloads\\IEDriverServer_x64_3.4.0\\IEDriverServer.exe");
        driver.get("https://login.yahoo.com/");
        System.out.println("Testcase2_1: Yahoo mail was launached");
    }
}
日志:


问题出在测试代码中

在类
NewTest.java
中有一个
WebDriver
实例作为数据成员。在
@postest
注释的
browserclose()
方法中正在进行
driver.close()
调用

通过语句
WebDriver driver=newinternetexplorerdriver(),在类
NewTest2.java
中实例化了另一个
WebDriver
实例但调用
driver.quit()
无法清除此驱动程序

因此,您还需要在
NewTest2.java
中调用
driver.quit()

测试代码还存在一些其他问题

  • 使用
    @BeforeTest
    @AfterTest
    注释方法管理WebDriver实例化和清理是个坏主意,因为每个
    标记只调用一次这些方法。因此,如果在
    标记中有两个或多个
    条目。您不应该使用
    @BeforeClass
    @AfterClass
    来管理这些内容
  • 要清理
    WebDriver
    实例,您应该调用
    driver.quit()
    而不是
    driver.close()

什么是“不工作”?你预期会发生什么,实际发生了什么?你收到错误日志了吗?嗨,哈弗,谢谢你的回复。根据browserclose()方法,应在操作结束时关闭internet explorer。但它并没有结束。这就是问题所在。当它尝试关闭时,您是否会添加日志样本?请编辑您的问题,并使用代码格式化工具。哈弗:请检查下面的日志。正在显示browserclose()已通过,但尚未关闭IE浏览器2017年7月29日上午4:52:38 org.openqa.selenium.remote.ProtocolHandshake createSession信息:检测到的方言:OSS测试用例0:Google已启动测试用例1:Gmail已启动已启动InternetExplorerDriver服务器(64位)3.4.0.0在端口30442上侦听仅允许本地连接Testcase2_1:Yahoo mail已启动Testcase2:Browser已关闭^Please,如我所问。
package framework2;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.testng.annotations.Test;
public class NewTest2 {
    @Test
    public void OpenYahooMail(){
        WebDriver driver = new InternetExplorerDriver();
        System.setProperty("WebDriver.ie.driver", "C:\\Users\\rprem\\Downloads\\IEDriverServer_x64_3.4.0\\IEDriverServer.exe");
        driver.get("https://login.yahoo.com/");
        System.out.println("Testcase2_1: Yahoo mail was launached");
    }
}
Started InternetExplorerDriver server (64-bit)
3.4.0.0
Listening on port 2133
Only local connections are allowed
Jul 29, 2017 5:16:13 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
TestCase 0: Google was launched
Testcase 1: Gmail was launached
Started InternetExplorerDriver server (64-bit)
3.4.0.0
Listening on port 23709
Only local connections are allowed
Jul 29, 2017 5:16:18 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Testcase2_1: Yahoo mail was launached
TestCase 2: Browser was closed
PASSED: OpenMail
PASSED: OpenYahooMail

===============================================
    Default test
    Tests run: 2, Failures: 0, Skips: 0
===============================================


===============================================
Default suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================