我创建了一个以管理员身份完成的任务并将其分配给writer。作为一名作家,我需要搜索任务并单击该特定任务编辑图标,我无法在列表中找到该任务。在一页10任务显示,任务可能在第一页或第二页。
有人可以用selenium
代码帮助我。
修改
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)
看看这样的东西是否适合你。我正在使用其属性[@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;