gpt4 book ai didi

java - 无法单击从工厂方法传递的元素

转载 作者:行者123 更新时间:2023-11-28 21:24:52 26 4
gpt4 key购买 nike

您好,我正在尝试单击使用 PageFactory 定义位置的元素。但它显示 NullPointerException。

定位器类:

@FindBy(xpath = "//*[@content-desc = 'Navigate up']")
public By backButton;

PageObject 类:

public AskPage()
{
PageFactory.initElements(driver, AskLocator.class);
}

public void backButtonClick()
{
if(backButtondisplayed())
commonactions.clickElement(driver, askLocator.backButton);
}

我做错了什么吗?

注意:我没有添加类。我刚刚在页面工厂类中为后退按钮添加了单击方法和定位器。我已经尝试将返回类型更改为 WebElemment 并且它工作正常。现在我想知道我可以从工厂类发送“By”对象吗?

最佳答案

在您的代码中:

您正在初始化“this”类,这意味着您正在初始化 AskPage.class。

PageFactory.initElements(driver, this);

但是没有必要初始化“AskPage”,因为您没有定位任何网络元素。

所以解决方案是:

PageFactory.initElements(driver, askLocator.class:);

它现在将为您施展魔法。

在 askLocator.class 中将 Web 元素设为静态,或者创建对象并访问 Web 元素。

关于java - 无法单击从工厂方法传递的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43329125/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com