gpt4 book ai didi

java - driver.close 在 testng 中不起作用

转载 作者:行者123 更新时间:2023-12-01 18:43:06 25 4
gpt4 key购买 nike

您好,当我通过计划 java 代码运行测试并使用 WebDriver 的 close() 方法时,它会关闭相应的浏览器实例。但是当我在任何 @After 注释内的 testNG 类中使用 driver.close() 时,例如

@AfterClass
public void logout()
{
driver.findElement(By.id(someSignOutId)).click();
driver.close();
}

那么它不会关闭浏览器实例。请尝试以下 2 个代码片段:测试NGSnippet:

package unitTest.myTest;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;

public class GoogleTestNGTest {
@Test
public void f() throws InterruptedException
{
WebDriver driver=new FirefoxDriver();
driver.get("http://www.google.com");
Thread.sleep(2000);
driver.close();
}
}

简单片段:

package unitTest.myTest;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class GoogleTest
{
public static void main(String[] args) throws InterruptedException
{
WebDriver driver=new FirefoxDriver();
driver.get("http://www.google.com");
Thread.sleep(2000);
driver.close();
}
}

这是 testNG 中的错误吗?注意: driver.quit() 正在工作,但我无法使用它,因为当我并行运行测试时,它将关闭仍在运行测试的所有浏览器实例。蒂亚! Selenium 网络驱动程序版本:2.33测试NG:6.8.5火狐版本:22Java:1.7.0.40

最佳答案

不是 TestNG 中的错误。

如果有的话,那就是 Selenium 中的一个错误。请记住,driver.close() 将关闭 Activity 窗口...这意味着如果测试打开了多个窗口,您将需要关闭所有窗口。

您说您正在并行运行多个测试...我希望您正在使用多个驱动程序实例...并非所有测试都在同一个驱动程序上运行。如果是这种情况,那么您可以调用driver.quit(),因为它只会退出当前实例。

但是,如果您设法在单个驱动程序上运行多个窗口来运行不同的代码...那么我无法帮助您,除了建议切换到多个实例(这更稳定)。

关于java - driver.close 在 testng 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19078209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com