geckodriver 在 java 中工作正常,但在 testng 上无法工作

问题描述 投票:0回答:1

WebDriver 驱动程序;

@BeforeMethod
public void setup() {
    System.setProperty("webdriver.gecko.driver", "C:\\SOFTWARE\\geckodriver.exe");
    WebDriver driver = new FirefoxDriver();
    
    driver.get("http/www.google.com");
    
    driver.manage().window().maximize();
    
    driver.manage().deleteAllCookies();
    driver.get("http/www.google.com")
    

不仅仅在 testng 中启动,而是在 java main 方法上工作,然后它工作正常

@BeforeMethod 应该运行。

java selenium-webdriver exception testng failure-slice
1个回答
0
投票

如果相同的代码在 main 方法中工作,但在 TestNG @BeforeMethod 中不起作用,则很可能 @BeforeMethod 未执行。

您可以尝试在 setup() 方法的任意行设置断点,并在调试模式下运行代码以查看该方法是否被调用。
或者,您可以在方法中的某处添加一些记录器或简单的 System.out.println("") 语句。

如果@BeforeMethod没有运行,请检查以下事项:

  • 确保至少有一个 @Test 存在并由 TestNG 执行
  • 如果 setup() 方法位于单独的类中(例如某个 BaseTest 类),请检查该类是否已添加到您的 testNG .XML 文件中。或者检查您实际的“Test”类是否扩展了“BaseTest”类。
  • 确保没有其他 @Before* 挂钩失败。您可以添加 'alwaysRun = true' (@BeforeMethod(alwaysRun = true)) 以确保即使其他一些钩子被跳过或失败,您的 @BeforeMethod 也会被执行。
© www.soinside.com 2019 - 2024. All rights reserved.