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