2016-12-14 63 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

相關問題