Java 无法单击从工厂方法传递的元素
您好,我正在尝试单击使用PageFactory定义位置的元素。但它显示的是NullPointerException 定位器类别: PageObject类: 我做错什么了吗 注意:我没有添加类。我刚刚在page factory类中为backbutton添加了click方法和定位器。我尝试过将返回类型更改为WebElement,效果很好。现在我想知道我可以从工厂类通过对象发送吗 在您的代码中: 您正在初始化“this”类,这意味着您正在初始化AskPage.class PageFactory.initElementsdriver,此 但是没有必要初始化“AskPage”,因为您没有找到任何web元素 因此,解决方案是:Java 无法单击从工厂方法传递的元素,java,selenium,testing,appium,pageobjects,Java,Selenium,Testing,Appium,Pageobjects,您好,我正在尝试单击使用PageFactory定义位置的元素。但它显示的是NullPointerException 定位器类别: PageObject类: 我做错什么了吗 注意:我没有添加类。我刚刚在page factory类中为backbutton添加了click方法和定位器。我尝试过将返回类型更改为WebElement,效果很好。现在我想知道我可以从工厂类通过对象发送吗 在您的代码中: 您正在初始化“this”类,这意味着您正在初始化AskPage.class PageFactory.ini
PageFactory.initElements(driver, askLocator.class:);
现在它会为你变魔术
在askLocator.class中将web元素设置为静态,或者创建对象并访问web元素 您初始化驱动程序实例了吗?您应该花一些时间阅读PageFactory上的文档。你没有正确地使用它。当我在工厂类中将返回类型更改为WebElement时,@narendrajput可能会重复,然后元素将正确返回,但当我尝试按对象返回时,它将变为null。我希望通过对象获取,因为我编写的所有方法都将通过对象作为输入。可以从工厂类通过对象发送吗?@JeffC这个问题与您提出的问题不同。嘿,谢谢。这是错误之一。我纠正了这个问题,但工厂类中的元素仍然为null。当我将返回类型更改为工厂类中的WebElement时,元素是正确的,但当我尝试按对象返回时,它变为null。我希望通过对象获取,因为我编写的所有方法都将通过对象作为输入。是否可以从工厂类按对象发送?发布一个将`By`作为输入的方法。public static void waitUntilElementIsVisibleWebDriver driver,按元素{WebDriverWait wait=new WebDriverWaitdriver,20;wait.untilExpectedConditions.visibilityOfElementLocatedelement;}例如,上面的方法将By作为输入。当我将WebElement传递给它时,它不起作用。
public AskPage()
{
PageFactory.initElements(driver, AskLocator.class);
}
public void backButtonClick()
{
if(backButtondisplayed())
commonactions.clickElement(driver, askLocator.backButton);
}
PageFactory.initElements(driver, askLocator.class:);