Selenium脚本不起作用

时间:2016-11-28 05:12:15

标签: selenium testing

我创建了一个以管理员身份完成的任务并将其分配给writer。作为一名作家,我需要搜索任务并单击该特定任务编辑图标,我无法在列表中找到该任务。在一页10任务显示,任务可能在第一页或第二页。 有人可以用selenium代码帮助我。 enter image description here

修改

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();

1 个答案:

答案 0 :(得分: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;