使用appium访问移动应用中的下拉值

时间:2016-01-25 13:05:55

标签: selenium appium

我使用Selenium登录了一个注册应用程序,我必须从国家/地区列表中选择一个国家/地区。如何选择特定国家/地区,例如"印度"来自"国家"使用appium命令下拉?

我尝试使用:

driver.scrollToExact("India").click()

但它不起作用。

4 个答案:

答案 0 :(得分:0)

您可以向下滚动,直到找到元素:

public void scrollDownAndClickIfElementPresent(String name) {
        for (int i = 0; i < 10; i++) {
            if (isElementPresent(name)) {
                tapOnElement(name);
                break;
            }
            else{
                scrollDown();
            }
        }

 public void scrollDown() {
        Dimension size = driver.manage().window().getSize();
        int x = size.width / 2;
        int starty = (int) (size.height * 0.60);
        int endy = (int) (size.height * 0.10);
        driver.swipe(x, starty, x, endy, 2000);
    }

 public boolean isElementPresent() {
        try {
            driver.findElementByName("india");
            return true;
        } catch (Exception e) {
            return false;
        }
    }
}

答案 1 :(得分:0)

更好的方法是使用XPath查找下拉列表的位置,然后再次找到合适的XPath来定位您要选择的元素。如果您有关于如何查找XPath的任何说明,请告诉我

答案 2 :(得分:0)

您可以点击微调器然后从下拉列表中找到国家“印度”。 试试这个

driver.findElement(By.id("xpath_of_spinner")).click();
driver.findElement(By.name("india")).click();

答案 3 :(得分:0)

冷杉写下方法

 public void **scrollToExactElement**(String str) {
        ((AndroidDriver<MobileElement>) driver).findElementByAndroidUIAutomator(
                "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\""
                        + str + "\").instance(0))").click();
    }

//这将滚动您的列表 的 driver.switchTo();

现在写 的 scrollToExactElement( “印度”)