无法使用 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】:

要使用在 testcaseBrowser 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:无法在 PayPal 登录页面上找到元素

selenium之POM模式的实现

Selenium(Python)PageObject页面对象

在 Java 中使用 Selenium 与 wep 页面交互时遇到问题

Selenium(Python)页面对象+数据驱动测试框架

selenium page object模式