带有Appium iOS的Xpath用于具有多个元素的容器

时间:2016-11-16 10:43:29

标签: xpath appium appium-ios

我正在尝试访问一个容器,里面有多个带有id的元素,但我似乎无法让它像我为android那样工作。

这是我到目前为止所做的:

    try {
        WebDriverWait wait = new WebDriverWait(driver, 3);
        wait.until(ExpectedConditions.visibilityOfElementLocated(
                By.xpath("//UIACollectionCell[UIAStaticText[contains(@name, 'section')] and UIAStaticText[contains(@name, 'title')]]")
        ));
        System.out.println("xpath w/ ids found");
    } catch (Exception e){
        System.out.println("xpath w/ ids not found");
    }

但是,如果我只有一个文本,它的工作正常

    try {
        WebDriverWait wait = new WebDriverWait(driver, 3);
        wait.until(ExpectedConditions.visibilityOfElementLocated(
                By.xpath("//UIACollectionCell/UIAStaticText[contains(@name, 'section')]")
        ));
        System.out.println("xpath w/ ids found");
    } catch (Exception e){
        System.out.println("xpath w/ ids not found");
    }

似乎在我的容器上使用[]因为某些原因而无法理解......

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

试试这样:

By.xpath("//UIACollectionCell[UIAStaticText[contains(@name, 'section') and contains(@name, 'title')]]");

希望这会有所帮助,让我知道会发生什么。

答案 1 :(得分:0)

它无效,因为您要求驱动程序等待单个元素。如果您想等待几个,那么您必须使用ExpectedConditions.visibilityOfAllElementsLocatedBy(By)函数。