2016-11-28 145 views
0

我已經創建了一個管理任務並將其分配給了writer。作爲一名編輯,我需要搜索任務並單擊該特定任務編輯圖標,我無法在列表中找到任務。在一頁中顯示10個任務,任務可以在第一頁或第二頁中。 有人可以幫我用這個代碼seleniumenter image description hereSelenium腳本不工作

編輯:

List<WebElement> EditButtons = d.findElements(By.cssSelector("a[title='Edit Row']")); 
        String textvalue = d.findElement(By.xpath("//div[@id='main-content']/div[2]/div/div[1]/div[3]/div/div/table/tbody/tr[5]/td[1][contains(text(),'26_Test4')]")).getText(); 
        Thread.sleep(3000); 
        System.out.println(textvalue); 
        //Horizontal scroll 
        JavascriptExecutor js = (JavascriptExecutor)d; 
        js.executeScript("window.scrollBy(2000,0)", ""); 
        JavascriptExecutor js = (JavascriptExecutor) d; 
        //Edit icon path 
        d.findElement(By.xpath("//div[@id='main-content']/div[2]/div/div[1]/div[3]/div/div/table/tbody/tr[5]/td[12]/i")).click(); 

編輯

I am getting error 
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 4, Size: 3 
    at java.util.ArrayList.rangeCheck(Unknown Source) 
    at java.util.ArrayList.get(Unknown Source) 

代碼

//vertical scroll 
      JavascriptExecutor jse3 = (JavascriptExecutor)d; 
      jse3.executeScript("window.scrollTo(0, document.body.scrollHeight)"); 
      Thread.sleep(2000); 
      //Zoomout 
      JavascriptExecutor js = (JavascriptExecutor) d; 
      js.executeScript("document.body.style.zoom='90%'"); 
      Thread.sleep(2000); 
      System.out.println("Zoomout is successfull"); 
      List<WebElement> dataTitles = d.findElements(By.xpath("//td[@data-title='Title ']")); 
      //System.out.println(dataTitles); 
      List<WebElement> editIcons= d.findElements(By.xpath("//td[12]/i")); 
      int index=0; 
      for(WebElement element : dataTitles) 
      { 
      if(element.getText().equalsIgnoreCase("28_res2")) 
      { 
      break; 
      } 
      index = index + 1; 
     } 

      editIcons.get(index).click(); 
+0

你能分享你爲此嘗試過的代碼嗎? –

+0

@AnishPillai我已更新代碼,請檢查它。 – Akshatha

+0

您是否使用firepath檢查了編輯圖標的xpath,它在UI上運行良好嗎?或者你在編寫正確的xpath時遇到問題? –

回答

0

看看這樣的事情是否適合你。我正在使用其屬性[@data-title='Title ']找到數據標題的列表。此外,我假設圖標也將具有相同的屬性,以便您可以獲得這些列表。

我在找到確切數據存在的索引,以便我可以在圖標上使用該索引來點擊它。如果你想爲多個頁面重複相同的邏輯,那麼你需要將所有這些代碼添加到處理頁面導航的外部循環中。

List<WebElement> dataTitles = d.findElements(By.xpath("//td[@data-title='Title ']")); 
List<WebElement> editIcons= d.findElements(By.xpath("...something...")); 

int index=0; 
for(WebElement element : dataTitles) { 
    if(element.getText().equalsIgnoreCase("26_Test4") { 
    break; 
    } 
index = index + 1; 
} 

//Click on edit icon at index derived above 
editIcons.get(index).click; 
+0

我有更新問題,請幫我調試錯誤。我在'editIcons.get(index).click();'行中得到錯誤 – Akshatha

+0

我需要水平滾動以獲取編輯圖標,因爲我的水平滾動不起作用我使用縮小來使編輯按鈕可見。仍然沒有點擊編輯圖標。 – Akshatha