Java 我如何确定为什么我的;事后诸葛亮;注释方法不起作用?
根据browserclose()方法,应在操作结束时关闭Internet Explorer。但它并没有结束 代码如下: 多重测试: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
<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
===============================================