在继承方法中,未从父类接收URL的子类



这是运行ChromeDriver的父类

package logInCredit;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class  LogInPage  {
public WebDriver driver ;
public void LogInCredit() {

//Open ChromeDriver    
WebDriver driver= new ChromeDriver();
driver.get("https://opensource-demo.orangehrmlive.com/");
driver.manage().window().maximize();
System.out.println(driver);

}
}

这是从父类获取url的子类

package afterLogIn;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.testng.annotations.Test;
import logInCredit.LogInPage;

public class NextLogIn extends LogInPage {

@Test
public void DashboardPage() {


System.out.println("driver is " +driver);


//Admin UserName Enter
WebElement AdminUserName = 
driver.findElement(By.xpath("//input[@name='txtUsername']"));
AdminUserName.sendKeys("Admin");

//Admin Password Enter
WebElement AdminPassword = 
driver.findElement(By.xpath("//input[@name='txtPassword']"));
AdminPassword.sendKeys("admin123");

//click Login
WebElement LogInButton = driver.findElement(By.xpath("//input[@id='btnLogin']"));
LogInButton.click();


WebElement ClickAdmin = driver.findElement(By.xpath("//*[text()='Admin']"));
ClickAdmin.click();


WebElement ClickPIM = driver.findElement(By.xpath("//*[text()='PIM']"));
ClickPIM.click();
}

}  

这是我的testng.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Suite">
<test name="After Login Test">
<classes>
<class name="afterLogIn.NextLogIn"/>  
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->

运行程序时,我得到异常

[RemoteTestNG] detected TestNG version 7.4.0
driver is null
FAILED: DashboardPage
java.lang.NullPointerException
at afterLogIn.NextLogIn.DashboardPage(NextLogIn.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

父类的Webdriver url没有传递给子类。他们对我的代码有任何问题吗。当我用main方法运行父类时,它会将浏览器导航到url,但当我从子类调用时,它不会给出相同的url。

类成员驱动程序没有实例化,在父类的方法logInCreated((中,您正在使用另一个对象引用(而不是类成员(。

在LoginPage中添加一个无arg构造函数,用于实例化驱动程序

public LoginPage(){ driver = new ChromeDriver(); }

并且在方法LogInCredit((中删除行WebDriver driver= new ChromeDriver();

相关内容

  • 没有找到相关文章

最新更新