Selenium java 我有两种失败的方法,代码中没有显示任何错误,但有两种情况失败了

发布于 2025-01-09 23:42:01 字数 5811 浏览 2 评论 0原文

我对标题验证有疑问关闭浏览器方法都失败了,代码中没有显示任何错误,但有两种情况失败了..

这是我的代码

    package com.google;
            
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.testng.annotations.Test;
            
    public class Titlevarification {
                
    @Test(priority=1)
    public void Launchbrowser() throws InterruptedException 
    {
    System.setProperty("webdriver.gecko.driver","C:\\Users\\Admin\\Downloads\\New folder 
    (3)\\geckodriver\\geckodriver.exe");
    WebDriver driver= new FirefoxDriver();
    driver.manage().window().maximize();
    driver.get("https://www.google.com/");
                          
    Thread.sleep(1000);
    }     
                      
    @Test(priority=2)
    public static void titlevarification(WebDriver driver)
    {
    String ExpectedTitle = "Google";
    String ActualTitle = driver.getTitle();
                     
    if (ActualTitle.equals(ExpectedTitle)) 
    {
    System.out.println("Test Passed!");
    } 
    else 
    {
    System.out.println("Test Failed");
    }
    }
    @Test(priority=3)
    public static void closebrowser(WebDriver driver)
    {
    driver.quit();
    System.out.println("Browser Closed");
    }
    }

这些是错误 通过:启动浏览器失败:标题变化 org.testng.TestNGException:无法注入@Test注释方法 [titlevarification] 与 [接口 org.openqa.selenium.WebDriver]。 有关本机依赖注入的更多信息请参阅 https://testng.org/doc/documentation-main.html#本机依赖注入 在 org.testng.internal.Parameters.checkParameterTypes(Parameters.java:439) 在 org.testng.internal.Parameters.createParametersForMethod(Parameters.java:353) 在 org.testng.internal.Parameters.createParameters(Parameters.java:708) 在 org.testng.internal.Parameters.handleParameters(Parameters.java:884) 在 org.testng.internal.Parameters.handleParameters(Parameters.java:740) 在 org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:59) 在 org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:38) 在 org.testng.internal.TestInvoker$MethodInvokerAgent.invoke(TestInvoker.java:791) 在 org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146) 在 org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146) 在 org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128) 在 java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
在 org.testng.TestRunner.privateRun(TestRunner.java:794)
在 org.testng.TestRunner.run(TestRunner.java:596)
在 org.testng.SuiteRunner.runTest(SuiteRunner.java:377)
在 org.testng.SuiteRunner.runSequentially(SuiteRunner.java:371)
在 org.testng.SuiteRunner.privateRun(SuiteRunner.java:332)
在 org.testng.SuiteRunner.run(SuiteRunner.java:276)
在 org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
在 org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
在 org.testng.TestNG.runSuitesSequentially(TestNG.java:1212)
在 org.testng.TestNG.runSuitesLocally(TestNG.java:1134)
在 org.testng.TestNG.runSuites(TestNG.java:1063)
在 org.testng.TestNG.run(TestNG.java:1031)
在 org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115) 在 org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251) 在 org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

失败:关闭浏览器 org.testng.TestNGException:无法注入@Test 带注释的方法 [closebrowser] 和 [interface org.openqa.selenium.WebDriver]。有关原生的更多信息 依赖注入请参考 https://testng.org/doc/documentation-main.html#本机依赖注入 在 org.testng.internal.Parameters.checkParameterTypes(Parameters.java:439) 在 org.testng.internal.Parameters.createParametersForMethod(Parameters.java:353) 在 org.testng.internal.Parameters.createParameters(Parameters.java:708) 在 org.testng.internal.Parameters.handleParameters(Parameters.java:884) 在 org.testng.internal.Parameters.handleParameters(Parameters.java:740) 在 org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:59) 在 org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:38) 在 org.testng.internal.TestInvoker$MethodInvokerAgent.invoke(TestInvoker.java:791) 在 org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146) 在 org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146) 在 org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128) 在 java.base/java.util.ArrayList.forEach(ArrayList.java:1511) 在 org.testng.TestRunner.privateRun(TestRunner.java:794) 在 org.testng.TestRunner.run(TestRunner.java:596) 在 org.testng.SuiteRunner.runTest(SuiteRunner.java:377) 在 org.testng.SuiteRunner.runSequentially(SuiteRunner.java:371) 在 org.testng.SuiteRunner.privateRun(SuiteRunner.java:332) 在 org.testng.SuiteRunner.run(SuiteRunner.java:276) 在 org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53) 在 org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96) 在 org.testng.TestNG.runSuitesSequentially(TestNG.java:1212) 在 org.testng.TestNG.runSuitesLocally(TestNG.java:1134) 在 org.testng.TestNG.runSuites(TestNG.java:1063) 在 org.testng.TestNG.run(TestNG.java:1031) 在 org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115) 在 org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251) 在 org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

默认测试 测试运行:3,失败:2,跳过:0 ================================================= ================================================= 默认套件 运行测试总数:3,通过:1,失败:2,跳过:0 =================================================

I have issue with title verification & close browser method both are failed, there is no any error shown in code but 2 case are failed..

This is my code

    package com.google;
            
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.testng.annotations.Test;
            
    public class Titlevarification {
                
    @Test(priority=1)
    public void Launchbrowser() throws InterruptedException 
    {
    System.setProperty("webdriver.gecko.driver","C:\\Users\\Admin\\Downloads\\New folder 
    (3)\\geckodriver\\geckodriver.exe");
    WebDriver driver= new FirefoxDriver();
    driver.manage().window().maximize();
    driver.get("https://www.google.com/");
                          
    Thread.sleep(1000);
    }     
                      
    @Test(priority=2)
    public static void titlevarification(WebDriver driver)
    {
    String ExpectedTitle = "Google";
    String ActualTitle = driver.getTitle();
                     
    if (ActualTitle.equals(ExpectedTitle)) 
    {
    System.out.println("Test Passed!");
    } 
    else 
    {
    System.out.println("Test Failed");
    }
    }
    @Test(priority=3)
    public static void closebrowser(WebDriver driver)
    {
    driver.quit();
    System.out.println("Browser Closed");
    }
    }

these are errors
PASSED: Launchbrowser FAILED: titlevarification
org.testng.TestNGException: Cannot inject @Test annotated Method
[titlevarification] with [interface org.openqa.selenium.WebDriver].
For more information on native dependency injection please refer to
https://testng.org/doc/documentation-main.html#native-dependency-injection
at org.testng.internal.Parameters.checkParameterTypes(Parameters.java:439)
at org.testng.internal.Parameters.createParametersForMethod(Parameters.java:353)
at org.testng.internal.Parameters.createParameters(Parameters.java:708)
at org.testng.internal.Parameters.handleParameters(Parameters.java:884)
at org.testng.internal.Parameters.handleParameters(Parameters.java:740)
at org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:59)
at
org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:38)
at
org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:791)
at
org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146)
at
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.testng.TestRunner.privateRun(TestRunner.java:794)
at org.testng.TestRunner.run(TestRunner.java:596)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:377)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:371)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:332)
at org.testng.SuiteRunner.run(SuiteRunner.java:276)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1212)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1134)
at org.testng.TestNG.runSuites(TestNG.java:1063)
at org.testng.TestNG.run(TestNG.java:1031)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

FAILED: closebrowser
org.testng.TestNGException: Cannot inject @Test
annotated Method [closebrowser] with [interface
org.openqa.selenium.WebDriver]. For more information on native
dependency injection please refer to
https://testng.org/doc/documentation-main.html#native-dependency-injection
at org.testng.internal.Parameters.checkParameterTypes(Parameters.java:439)
at org.testng.internal.Parameters.createParametersForMethod(Parameters.java:353)
at org.testng.internal.Parameters.createParameters(Parameters.java:708)
at org.testng.internal.Parameters.handleParameters(Parameters.java:884)
at org.testng.internal.Parameters.handleParameters(Parameters.java:740)
at org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:59)
at org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:38)
at
org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:791)
at
org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146)
at
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.testng.TestRunner.privateRun(TestRunner.java:794)
at org.testng.TestRunner.run(TestRunner.java:596)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:377)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:371)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:332)
at org.testng.SuiteRunner.run(SuiteRunner.java:276)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1212)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1134)
at org.testng.TestNG.runSuites(TestNG.java:1063)
at org.testng.TestNG.run(TestNG.java:1031)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

Default test
Tests run: 3, Failures: 2, Skips: 0
===============================================
===============================================
Default suite
Total tests run: 3, Passes: 1, Failures: 2, Skips: 0
===============================================

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

从此见与不见 2025-01-16 23:42:01

将参数传递给用 @Test 注解的方法应该以特殊的方式完成。我建议您从这两个方法中删除 WebDriver 参数,并将其设为实例变量。

Passing arguments to methods annotated with @Test should be done in a special way. I suggest that you remove the WebDriver argument from both methods and make it an instance variable instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文