Selenium java 我有两种失败的方法,代码中没有显示任何错误,但有两种情况失败了
我对标题验证有疑问关闭浏览器方法都失败了,代码中没有显示任何错误,但有两种情况失败了..
这是我的代码
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将参数传递给用
@Test
注解的方法应该以特殊的方式完成。我建议您从这两个方法中删除WebDriver
参数,并将其设为实例变量。Passing arguments to methods annotated with
@Test
should be done in a special way. I suggest that you remove theWebDriver
argument from both methods and make it an instance variable instead.