2016-11-28 109 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