Actualmente estoy intentando automatizar un flujo de inicio de sesión. La codificación del camino feliz funciona correctamente. Ahora estoy codificando credenciales no válidas.

Mi código es similar a esto:

driver.findElement(By.xpath("//android.widget.Button[@text='Password']").click;
//At this point the button is pressed
Thread.sleep(10000); //Screen with the following item is definitely visible
MobileElement actual = (MobileElement)(new WebDriverWait(driver, 30).until(ExpectedConditions.presenceOfElementLocated(By.xpath("//android.view.View[@content-desc='Invalid user ID or password. Try again']")))); 
//Note when I print out the xml and use xpathfinder I get 1 response

Estoy recibiendo esta respuesta:

Am element could not be located on the page using the given search parameters. (WARNING: The server did not provide any stacktrace information)
1
JaysonP 16 ago. 2016 a las 00:23

2 respuestas

La mejor respuesta

Entonces, el problema es que getAttribute("content-desc") no es lo que está buscando appium. En su lugar, usar getAttribute("name") devolverá el valor deseado (también conocido como content-desc).

0
JaysonP 16 sep. 2016 a las 23:37

Puede probar la espera fluida en lugar de la espera normal del controlador web

public void waitForElement(final By by,
            int timeInSeconds,WebDriver driver) {
        Wait<WebDriver> wait = FluentWait<WebDriver>(driver)
            .withTimeout(timeInSeconds, TimeUnit.SECONDS)
            .pollingEvery(500, TimeUnit.MILLISECONDS)
            .ignoring(NoSuchElementException.class);

        wait.until(new Function<WebDriver, Boolean>() {
            public Boolean apply(WebDriver driver) {
                List<WebElement> elements = driver.findElements(by);
                if (elements.size() > 0) {

                            return true;
                        }
                }
                return false;
            }
        });
    }

Entonces haz una llamada

waitForElement(By.xpath("//android.view.View[@content-desc='Invalid user ID or password. Try again']", 60,driver)
0
Shambu 17 ago. 2016 a las 22:18