如何编写带有条件的xpath来获取我的需求所需的webelements列表

时间:2017-05-16 06:45:07

标签: java selenium xpath selenium-webdriver browser-automation

我想获得一个webelements列表,我为此编写了一个公共xpath来检索所有的webelements。问题是该列表包含一个webelement,我在代码中并不需要。

List<WebElement> tbodyTD2 = InitDriver.driver.findElements(By.xpath("//tr[@id='addBrandTbl']/td/table/tbody/tr/td"));

这给了我9个小元素。其中8个是必需的。 在我的列表中我不想要的webelement的xpath是:

.//*[@id='addBrandTbl']/td/table/tbody/tr[3]/td

有没有办法写我的xpath以便我可以获得一个不包含上述元素的列表?

4 个答案:

答案 0 :(得分:2)

您可以编写一个XPath谓词来排除某个位置索引中的元素:

By.xpath("//tr[@id='addBrandTbl']/td/table/tbody/tr[position() != 3]/td")

答案 1 :(得分:1)

您可以从列表中删除此元素

tbodyTD2.remove(3);

答案 2 :(得分:1)

Try this one    

 List<WebElement> webElements = driver.findElements(By.xpath("//tr[@id='addBrandTbl']/td/table/tbody/tr/td"));
    List requiredElementsList=new ArrayList();
    for (WebElement element : webElements) {
        if (!element.equals("unwantedWlement")) {
                    requiredElementsList.add(element);
                }
            }

答案 3 :(得分:0)

GOT

xpath:// tr [@ id ='addBrandTbl'] / td / table / tbody / tr / td [not(@colspan)]