根据Selenium Java中列表中的索引单击链接

根据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

我有这样的页面

名称年龄操作

abc 12删除

xyz 16移除

删除链接。我必须根据用户提供的名称删除该行。 我的密码是

   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获取此元素。