鸦片不承认这些元素

时间:2017-12-15 06:20:06

标签: selenium appium

我在物体识别方面遇到了一个奇怪的问题。我有3个字段的用户名,密码和登录按钮。用户名字段已被识别,我可以键入数据。但是,无论如何,Appium都没有认识到其他两个领域。我需要帮助。

enter image description here

public class LoginPageObjects {

    @AndroidFindBy(uiAutomator = "new UiSelector().text(\" Employee ID or Email\")")
    private AndroidElement username;

    @AndroidFindBy(uiAutomator = "new UiSelector().text(\"Password\")" )
    private AndroidElement password;

    @AndroidFindBy(uiAutomator = "new UiSelector().text(\"LOGIN\")")
    private AndroidElement loginsubmit;

    public AndroidElement getUsername() {
        return username;
    }

    public AndroidElement getPassword() {
        return password;
    }

    public AndroidElement getLoginsubmit() {
        return loginsubmit;
    }
}

公共类LoginPageFuncs扩展了LoginPageObjects {

private AndroidDriver driver;

public LoginPageFuncs(AndroidDriver driver) {
    this.driver = driver;
    PageFactory.initElements(new AppiumFieldDecorator(driver), this);
}

public void doLogin(Map<String, String> table) throws InterruptedException {
    getUsername().sendKeys(table.get("username"));
    getPassword().sendKeys(table.get("password"));
    getLoginsubmit().click();
}

}

<dependencies>
    <dependency>
        <groupId>io.appium</groupId>
        <artifactId>java-client</artifactId>
        <version>5.0.4</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.8.1</version>
    </dependency>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.13.1</version>
    </dependency>
</dependencies>

1 个答案:

答案 0 :(得分:0)

也许是因为你想要的文字空间。

试试这个:

public class LoginPageObjects {

    @AndroidFindBy(uiAutomator = "new UiSelector().textContains(\" Employee ID or Email\")")
    private AndroidElement username;

    @AndroidFindBy(uiAutomator = "new UiSelector().textContains(\"Password\")" )
    private AndroidElement password;

    @AndroidFindBy(uiAutomator = "new UiSelector().textContains(\"LOGIN\")")
    private AndroidElement loginsubmit;

    public AndroidElement getUsername() {
        return username;
    }

    public AndroidElement getPassword() {
        return password;
    }

    public AndroidElement getLoginsubmit() {
        return loginsubmit;
    }
}