26

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

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

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

这很好用,我有一个包含几个 Webelements 的列表。

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

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

任何想法?

4

3 回答 3

44

我在 C# 中有一个方法。

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

希望能帮助到你 :)

于 2012-08-30T10:09:02.223 回答
13

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

我试过了,它在硒中有效。

于 2013-01-04T09:11:03.497 回答
3

这将在 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();
于 2015-12-04T16:59:19.153 回答