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

Ed *_*d H 23 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,但它不起作用.

任何的想法?
谢谢!

小智 39

我在C#中有一个方法.

public static IWebElement GetParent(IWebElement e)
{
   return e.FindElement(By.XPath(".."));
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你 :)

  • 为我工作了一个CHARM.谢谢塔德斯科. - PS:Python Chrome驱动程序. (4认同)
  • 谢谢你.帮助过我! (2认同)

小智 13

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

我试过,它适用于硒.


TWi*_*lly 6

这将在 IWebElement 之上创建一个扩展,让您可以直接在子 IWebElement 上调用 GetParent

public static class MyExtensions
{
    public static IWebElement GetParent(this IWebElement node)
    {
        return node.FindElement(By.XPath(".."));
    }
}  
Run Code Online (Sandbox Code Playgroud)

用法示例...

IWebElement node = WebDriver.FindElement('..');
IWebElement parent = node.GetParent();
Run Code Online (Sandbox Code Playgroud)