根据Selenium Java中列表中的索引单击链接
我有这样的页面 名称年龄操作 abc 12删除 xyz 16移除 删除链接。我必须根据用户提供的名称删除该行。 我的密码是根据Selenium Java中列表中的索引单击链接,java,selenium,Java,Selenium,我有这样的页面 名称年龄操作 abc 12删除 xyz 16移除 删除链接。我必须根据用户提供的名称删除该行。 我的密码是 int dynamicLinkIndex= -1; public void getIndex(){ List<WebElement> input = gui.getfWebDriver().findElements(By.xpath(xpathOfElement)); for(WebEle
int dynamicLinkIndex= -1;
public void getIndex(){
List<WebElement> input = gui.getfWebDriver().findElements(By.xpath(xpathOfElement));
for(WebElement web : input){
dynamicLinkIndex++;
if(web.getText().equals("abc"));
break;
}
}
}
public void deleteElement(){
WebElement web = input.get(dynamicLinkIndex).findElement(By.xpath(xpathOfElement))
web.click();
}
它正确地打印了索引。但是总是删除第一个元素而不是索引后面的元素也许您应该使用xpath“contains”函数来获取“abc”元素,然后获取该元素的正确同级删除按钮,而不是计算索引,所有这些都在一个xpath中。例如:
td[contains(text(),'abc')]/following-sibling::td[class='remove']
可能存在范围问题,因为deleteElement方法中引用的“input”变量实际上是在getIndex方法中声明的。或者可能只是xpath错了。我认为你的方法是不好的,因为它会产生太多的负载,毫无意义地占用大量内存。您应该尝试使用一个xpath获取此元素。