当我使用@FindBy批注时,没有得到这样的元素异常,当我使用driver.findelement(By.id())时工作正常。

问题描述 投票:0回答:1
我在appium中使用Java。我使用两种方法执行代码。

一个-当我使用下面的代码时,它工作正常。

public class On_BoardingPages MobileElement smsField = driver.findElement(By.id("pinEntryViewVerifyCode")); smsField.sendKeys("XXXX"); public On_BoardingPages(AppiumDriver<MobileElement> driver) { PageFactory.initElements(new AppiumFieldDecorator(driver), this); } public void enterSMSVerificationCode(String codeVerification) { sms_VerificationCode.sendKeys(codeVerification); }

第二-当我使用POM及其失败时>>

页面类别:

@FindBy(id = "pinEntryViewVerifyCode") private MobileElement sms_VerificationCode;

TestClass

on_BoardingPages.enterSMSVerificationCode("XXXX");

错误:

org.openqa.selenium.NoSuchElementException:无法通过此策略定位元素:By.chained({By.id:pinEntryViewVerifyCode})在io.appium.java_client.pagefactory.AppiumElementLocator.findElement(AppiumElementLocator.java:126)在io.appium.java_client.pagefactory.interceptors.InterceptorOfASingleElement.intercept(InterceptorOfASingleElement.java:60)-由以下原因引起:org.openqa.selenium.TimeoutException:预期条件失败:等待io.appium.java_client.pagefactory.AppiumElementLocator$WaitingFunction@56a4479a(尝试1秒,间隔500毫秒)在org.openqa.selenium.support.ui.FluentWait.timeoutException(FluentWait.java:303)在org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:271)在io.appium.java_client.pagefactory.AppiumElementLocator.waitFor(AppiumElementLocator.java:99)在io.appium.java_client.pagefactory.AppiumElementLocator.findElement(AppiumElementLocator.java:119)

我在appium中使用Java。我使用两种方法执行代码。一种-当我使用下面的代码时,它工作正常。公共类On_BoardingPages MobileElement smsField = driver.findElement(By.id(“ ...

java appium appium-android pageobjects
1个回答
0
投票
@@ FindBy仅适用于WebElements POM。对于MobileElements,对于Android,我们应使用

@ AndroidFindBy

;对于iOS,应使用@ iOSXCUITFindBy
© www.soinside.com 2019 - 2024. All rights reserved.