如何在Selenium Webdriver中的显式等待语句中添加元素?

时间:2016-12-14 11:36:45

标签: selenium-webdriver

    WebElement statusArr[]=new WebElement[6];
    String arr[] = new String[6];       
    for(int i=0;i<6;i++)
    {
        int j = i+1;
        statusArr[i] = driver.findElement(By.xpath("//*[@id='body']/ui-view/div[1]/div/div["+j+"]/a/table/tbody/tr[1]/td/div/i"));
        arr[i] = statusArr[i].getAttribute("title");
    }
    for(int i=0;i<6;i++)
    {
        if(arr[i].equals("Not Provided")||arr[i].equals("Incomplete")){
            wait.until(ExpectedConditions.visibilityOfNestedElementsLocatedBy(statusArr[i], null));
            statusArr[i].click();
            driver.navigate().back();
        }
    }

这里我试图等待元素加载然后单击。但这是不可能的。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

来自visibilityOfNestedElementsLocatedBy docs

  

期望将子WebElement检查为父元素的一部分可见

visibilityOfNestedElementsLocatedBy(statusArr[i], null)中,您基本上等待null可见。请尝试使用visibilityOf

wait.until(ExpectedConditions.visibilityOf(statusArr[i]));

顺便说一下,当你点击元素并向后导航时,你将会松开statusArr[]中的元素,你将不得不在每次迭代时重新定位它们。