无法使用 Selenium 和页面工厂在页面对象类中调用“org.openqa.selenium.WebDriver.getTitle()”
Posted
技术标签:
【中文标题】无法使用 Selenium 和页面工厂在页面对象类中调用“org.openqa.selenium.WebDriver.getTitle()”【英文标题】:Cannot invoke "org.openqa.selenium.WebDriver.getTitle()" in Page Object Class using Selenium and Page Factory 【发布时间】:2022-01-05 11:24:00 【问题描述】:创建基类:
public loginpage()
PageFactory.initElements(driver,this);
然后页面对象初始化:
public String GetTitle()
System.out.println("title111");
return driver.getTitle();
然后创建测试用例:
@Test
public void title()
String a= lp.GetTitle();
System.out.println(a);
输出:
java.lang.NullPointerException: Cannot invoke "org.openqa.selenium.WebDriver.getTitle()" because "this.driver" is null
请告诉我出了什么问题。
【问题讨论】:
【参考方案1】:要使用在 testcase 或 Browser Factory 中创建的同一浏览器,需要重复使用。
因此,在Page Objects 中,您首先需要:
public LoginPage(WebDriver loginPageDriver)
this.driver=loginPageDriver;
然后:
public String GetTitle()
System.out.println("title111");
return driver.getTitle();
参考文献
您可以在以下位置找到一些相关的详细讨论:
Tests using Page Factory Design and Page Object Model opens two instances of the browser using Selenium and Java【讨论】:
以上是关于无法使用 Selenium 和页面工厂在页面对象类中调用“org.openqa.selenium.WebDriver.getTitle()”的主要内容,如果未能解决你的问题,请参考以下文章
Selenium(Python)PageObject页面对象