2017-12-15 2 views
0

Ich habe ein seltsames Problem bei der Objektidentifikation. Ich habe 3 Felder Benutzername, Passwort und Login-Buttons. Das Feld Benutzername wird erkannt und ich kann die Daten eingeben. Aber Appium erkennt die anderen 2 Felder nicht, egal was passiert. Ich brauche Hilfe.Appium erkennt die Elemente nicht

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; 
    } 
} 

public class LoginPageFuncs erweitert 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> 

Antwort

0

Vielleicht, weil der Räume mit Text, den Sie bekommen es versuchen zu.

Versuchen Sie folgendes:

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; 
    } 
} 
Verwandte Themen