无法使用uiautomatorviewer和appium找到元素

时间:2017-02-01 13:33:50

标签: appium uiautomator uiautomatorviewer

我尝试使用uiautomatorviewer自动运行Android应用程序脚本并运行appium版本1.6.3,框架TESTNG

这里我的代码,所有元素都很好找到,但只有最后一个索引= 2,它在uiautomatorviewer上可见(参见图片enter image description here) 找到索引为0和1的所有元素都可以!只有最后一个。 我使用相同的逻辑只是改变索引2

 @Test(priority = 1)
        public void SignIn() throws InterruptedException {
            System.out.println("newlook-tutoriel");
            /*
             * boolean ispresent = driver.findElement(By.id("skip")).isDisplayed();
             * if (ispresent == true) { driver.findElement(By.id("skip")).click();
             * System.out.println("Tutorials are present"+ispresent); } else
             * System.err.println("Tutorials aren't present ! "+ispresent);
             */
            System.out.println("newlook-welcome");
            driver.findElement(By.id("btn_signin_welcome")).click();
            System.out.println("newlook-Me connecter");
            driver.findElement(By.id("input_email")).sendKeys(
                    "eayadi@bulldozerinc.com");
            System.out.println(driver.findElement(By.id("input_password"))
                    .getClass());
            // Thread.sleep(5000);
            driver.hideKeyboard();
            driver.findElement(By.id("input_password")).sendKeys("00000000");
            // Thread.sleep(5000);
            driver.hideKeyboard();
            driver.findElement(By.id("btn_signin")).click();
            Thread.sleep(5000);
            System.out.println("connected !!!!");
            System.out.println(driver.findElement(By.xpath(".//@class='android.widget.TextView'")).getText());
            System.out.println("Bienvenue"+driver.findElement(By.xpath("//*[@class='android.widget.TextView' and @index='0']")).getText());
            System.out.println("Emna"+driver.findElement(By.xpath("//*[@class='android.widget.TextView' and @index='1']")).getText());
            System.out.println("répondez....." + driver.findElement(By.xpath("//*[@class='android.widget.TextView' and @index='2']")).getText());
            driver.findElement(By.xpath("//*[@class='android.widget.Button']")).click(); 

        }

此处为appium log

[debug] [AndroidBootstrap] Sending command to android: {"cmd":"action","action":"find","params":{"strategy":"xpath","selector":"//*[@class='android.widget.TextView' and @index='2']","context":"","multiple":false}}
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {"cmd":"action","action":"find","params":{"strategy":"xpath","selector":"//*[@class='android.widget.TextView' and @index='2']","context":"","multiple":false}}
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: find
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Finding '//*[@class='android.widget.TextView' and @index='2']' using 'XPATH' with the contextId: '' multiple: false
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":7,"value":"Could not find an element using supplied strategy. "}

1 个答案:

答案 0 :(得分:0)

我仍然不知道共鸣但我通过这种方式解决它:

driver.findElements(By.className("android.widget.TextView")).get(2).getText();