2016-12-14 31 views
0
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(); 
     } 
    } 

我在这里试图等待加载,然后单击该元素。但这是不可能的。我怎样才能做到这一点?如何在Selenium Webdriver的显式等待语句中添加元素?

+0

请发布相关的HTML并描述您尝试完成的场景。我认为可能有更好的方法来做到这一点。只要有XPath定位器会变得非常脆弱。 – JeffC

回答

0

visibilityOfNestedElementsLocatedBydocs

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

visibilityOfNestedElementsLocatedBy(statusArr[i], null)你基本上是在等待null可见。尝试visibilityOf代替

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

顺便说一句,当你点击的元素,然后返回你将失去的元素statusArr[],你将不得不重新定位他们每次迭代。

+0

我应该怎么做导航呢? 如果我每次都在迭代中重新定位元素,那么如何获得循环迭代的计数值? –

+0

@AniruddhaSupe看一看http://stackoverflow.com/questions/38366251/get-staleelementreferenceexception-error-while-using-driver-navigate-back-in/38366373#38366373 – Guy

相关问题