我有3类-一种用于页面定位器,一种用于页面动作,另一种作为执行功能的脚本。在调用该函数的主脚本中出现nullpointer异常。有人可以帮我吗!!!!
以下是代码:
公共类HomePageLocator { WebDriver驱动程序; 公共HomePageLocator(WebDriver驱动程序) { this.driver =驱动程序; }
@FindBy(xpath="//*[@id='header']/div[2]/div/div/nav/div[1]/a")
public WebElement signIn;
}
HomePageAction.page 公共类HomePageAction {
公共WebDriver驱动程序; 公共HomePageLocator主页;或
public HomePageAction(){
this.homepage = new HomePageLocator(driver);
PageFactory.initElements(driver, this.homepage);
}
public void login(){ homepageor.signIn.click(); }
BaseTestCase.java
公共类BaseTestCase {
public static Logger log = Logger.getLogger("devpinoyLogger");
public static void main(String[] args) throws Throwable {
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir")+"\\src\\test\\resources\\Executables\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://automationpractice.com/index.php");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// Home page validation
HomePageAction homepageaction= new HomePageAction();
homepageaction.login();
}
注意:在行中正在获取异常(homepageaction.login();) 以下是异常日志: 线程“主”中的异常java.lang.NullPointerException 在org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:69) 在org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:38) 在com.sun.proxy。$ Proxy3.click(未知来源) 在com.way2.Pages.actions.HomePage.login(HomePageAction.java:31) 在com.way2.Testcases.BaseTestCase.main(BaseTestCase.java:35)
答案 0 :(得分:0)
您正在主类中创建驱动程序,但未将其传递给homepageAction 公共静态void main(String [] args)抛出Throwable {
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir")+"\\src\\test\\resources\\Executables\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
尝试将驱动程序传递为 HomePageAction homepageaction =新的HomePageAction(驱动程序); this.driver = driver