如何使用Java获取Selenium WebDriver的父HTML标记

时间:2012-08-30 08:35:38

标签: java selenium selenium-webdriver

我有一个搜索<span class="legend">的测试。在以前的级别上,我有一个包含多个值的字段集。这是我的问题。我没有获得此字段集的定位器。

首先,我得到一个包含所有class=legend个对象的列表:

List<WebElement> groupList = driver.findElements(By.className("legend"));

这完美无缺,我有一个包含多个Webelements的列表。

现在我想迭代此列表并仅保存上一级字段集中的每个值。问题是Selenium找不到fieldset的id。

我尝试tempGroupElement.getAttribute("id")来获取ID,但它不起作用。

任何想法?
谢谢!

3 个答案:

答案 0 :(得分:38)

我在C#中有一个方法。

public static IWebElement GetParent(IWebElement e)
{
   return e.FindElement(By.XPath(".."));
}

希望有所帮助:)

答案 1 :(得分:12)

您可以使用WebElement.findElement(By.xpath("parent::*"))

我试过,它适用于硒。

答案 2 :(得分:0)

这会在IWebElement之上创建一个扩展,让你直接在子IWebElement上调用GetParent

public static class MyExtensions
{
    public static IWebElement GetParent(this IWebElement node)
    {
        return node.FindElement(By.XPath(".."));
    }
}  

使用示例......

IWebElement node = WebDriver.FindElement('..');
IWebElement parent = node.GetParent();