Ron*_*dar 0 testng selenium selenium-webdriver testng-eclipse
我是Selenium的新手,在运行下面的脚本时,我得到空指针异常,并且一旦站点调用加载,测试就会停止运行.我无法理解异常的原因.
代码如下:
package TestNGPackage;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.support.ui.*;
import org.openqa.selenium.firefox.*;
import org.openqa.selenium.*;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;
public class ParameterizationTest {
WebDriver driver;
@Test(dataProvider="getdata")
public void Login(String Username, String Password)
{
//WebDriverWait wait= new WebDriverWait(driver,60);
//WebElement username= wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("username")));
WebElement username=driver.findElement(By.id("username"));
WebElement password= driver.findElement(By.id("password"));
username.sendKeys(Username);
password.sendKeys(Password);
WebElement SignIn= driver.findElement(By.tagName("button"));
String text = SignIn.getText();
if (text.equalsIgnoreCase("sign in")) {
// sign in btn
SignIn.submit();
}
}
@DataProvider(name="getdata")
public Object[][] testgetdata()
{
Object[][] data = new Object[3][2];
//row1
data[0][0]="ho@abc.com";
data[0][1]="welcome23";
//row2
data[1][0]="ho@baskin.com";
data[1][1]="welcome23";
//row3
data[2][0]="ho@nike.com";
data[2][1]="welcome23";
return data;
}
@BeforeMethod
public void beforeTest() {
WebDriver driver = new FirefoxDriver();
driver.get("http://52.25.202.63/illweb/");
// driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@AfterMethod
public void AfterTest() {
//driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
WebElement logout = driver.findElement(By.linkText("Logout"));
logout.click();
//driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.close();
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
[TestNG]正在运行:C:\ Users\Ronit\AppData\Local\Temp\testng-eclipse - 473949223\testng-customsuite.xml [Utils]试图创建C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\default suite\Default test.xml [Utils]目录C:\ Users\Ronit\workspace\FirstTestNGProject\test-output \默认套件存在:true FAILED CONFIGURATION:@AfterMethod AfterTest java.lang.NullPointerException at TestNGPackage.ParameterizationTest.AfterTest(参数化测试.java:60)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method .invoke(未知来源)在org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:100)在org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:515)在org.testng.internal.Invoker.invokeConfigurations (Invoker.java:216)org.testng.internal.Invoker.invokeMethod(Inv oker.java:712)处org.testng.internal.TestMethodWorker.invokeTestMethods org.testng.internal.Invoker.invokeTestMethod(Invoker.java:811)在org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1129) (testMethodWorker.java:129)org.testng.TestMethodWorker.run(TestMethodWorker.java:112)org.testng.TestRunner.privateRun(TestRunner.java:746)atg.testng.TestRunner.run(TestRunner.的java:600)在org.testng.SuiteRunner.runTest(SuiteRunner.java:366)在org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)在org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)在org.testng.SuiteRunner.run(SuiteRunner.java:268)org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)org.testng.TestNG .runSuitesSequentially(TestNG.java:1264)在org.testng.TestNG.runSuitesLocally(TestNG.java:1189)在org.testng.TestNG.runSuites(TestNG.java:1104)在org.testng.TestNG.run(TestNG的. java:1076)at org.testng.rem ote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:126)在org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:152)在org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:57)SKIPPED CONFIGURATION:@ BeforeMethod beforeTest SKIPPED CONFIGURATION:@AfterMethod AfterTest SKIPPED CONFIGURATION:@BeforeMethod beforeTest SKIPPED CONFIGURATION:@AfterMethod AfterTest FAILED:登录("manjeet@wtechspaces.in","p @ ssw0rd")java.lang.NullPointerException at TestNGPackage.ParameterizationTest.Login(参数化测试.java:20)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method .invoke(未知来源)在org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:100)在org.testng.internal.Invoker.invokeMethod(Invoker.java:646)在org.testng.internal.Invoker.invokeTestMethod (Invoker.java:811)at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1129)在org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)在org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)在org.testng.TestRunner.privateRun(TestRunner.java:746)在org.testng.TestRunner.run(TestRunner.java:600)在org.testng.SuiteRunner.runTest(SuiteRunner.java:366)在org.testng. SuiteRunner.runSequentially(SuiteRunner.java:361)在org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)在org.testng.SuiteRunner.run(SuiteRunner.java:268)在org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker的.java:52)在org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)在org.testng.TestNG.runSuitesSequentially(TestNG.java:1264)在org.testng.TestNG.runSuitesLocally(TestNG.java:1189)在org.testng.TestNG.runSuites(TestNG.java:1104)在org.testng.TestNG.run(TestNG.java:1076)在org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:126)在有机testng.remote.Re moteTestNG.initAndRun(RemoteTestNG.java:152)在org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:57)跳过:登录( "ho@baskin.com", "welcome123")跳过:登录("豪@ nike.com","welcome123")========================================= ======默认测试测试运行:3,失败:1,跳过:2配置失败:1,跳过:4 ====================== ========================= ========================= ======================默认套件总测试运行:3,失败:1,跳过:2配置失败:1,跳过:4 ===== ========================================== [Utils]试图创建C:\Users\Ronit\workspace\FirstTestNGProject\test-output\testng-failed.xml [Utils]目录C:\ Users\Ronit\workspace\FirstTestNGProject\test-output exists:true [Utils]试图创建C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\Default suite\testng-failed.xml [Utils]目录C:\ Users\Ronit\workspace\FirstTestNGProject\test-output \默认套件存在:true [TestNG] [Fai]所用的时间 ledReporter传递= 0失败= 0跳过= 0]:36毫秒[TestNG] org.testng.reporters.XMLReporter@5594a1b5所占用的时间:30 ms [Utils]尝试创建C:\ Users\Ronit\workspace\FirstTestNGProject\test -output\junitreports\TEST-TestNGPackage.ParameterizationTest.xml [Utils]目录C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\junitreports存在:true [TestNG] org.testng.reporters.JUnitReportReporter@3f3afe78所用的时间:15 ms [TestNG] org.testng.reporters.jq.Main@1cd072a9所花费的时间:228 ms [TestNG] org.testng.reporters.EmailableReporter2@34ce8af7所花费的时间:8 ms [Utils]试图创建C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old\Default suite\toc.html [Utils]目录C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old\Default suite exists:true [Utils] Attempting创建C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old\Default suite\Default test.properties [Utils]目录C:\ Users\Ronit\workspace\FirstTestNGProject\test- output\old \默认套件存在:true [Utils]尝试创建C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old\Default suite\index.html [Utils]目录C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old \默认套件存在:true [Utils]尝试创建C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old\Default suite\main.html [Utils]目录C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old \默认套件存在:true [Utils]尝试创建C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old\Default suite\groups.html [Utils ]目录C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old \默认套件存在:true [Utils]尝试创建C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old\Default suite\classes.html [Utils]目录C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old \默认套件存在:true [Utils]尝试创建C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old \默认套件\ reporter-output.html [Utils]目录C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old \默认套件存在:true [Utils]尝试创建C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old\Default suite\methods-not-run.html [Utils]目录C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old\Default suite exists:true [Utils] Attempting创建C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old\Default suite\testng.xml.html [Utils]目录C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old\Default suite exists:true [Utils]尝试创建C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old\index.html [Utils]目录C:\ Users\Ronit\workspace\FirstTestNGProject\test-output\old存在:true [TestNG] org.testng.reporters.SuiteHTMLReporter@6b71769e所花费的时间:58 ms
请帮我解决我的错误,提前致谢!
您发现NullPointerException导致驱动程序在该点之前未初始化.您尝试在beforeTest()方法中初始化WebDriver实例,但它是本地的.要解决此问题,只需在beforeTest()方法中初始化该WebDriver,而不必重新声明为:
driver = new FirefoxDriver();
Run Code Online (Sandbox Code Playgroud)
不
WebDriver driver = new FirefoxDriver();
Run Code Online (Sandbox Code Playgroud)
第二个NullPointerExpception是由于相同的原因引起的.
归档时间: |
|
查看次数: |
1509 次 |
最近记录: |