如何使用Java获得SeleniumWebDriver的父HTML标记

如何使用Java获得SeleniumWebDriver的父HTML标记,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我有一个搜索的测试。在上一个级别上,我有一个包含多个值的字段集。这是我的问题。我没有这个字段集的定位器 首先,我得到一个包含所有class=legend对象的列表: List-groupList=driver.findElements(By.className(“图例”) 这非常有效,我有一个包含多个Webelements的列表 现在我想迭代这个列表,只保存上一级字段集中的每个值。问题是Selenium找不到字段集的id 我尝试了tempGroupElement.getAttribute(“id

我有一个搜索
的测试。在上一个级别上,我有一个包含多个值的字段集。这是我的问题。我没有这个字段集的定位器

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

List-groupList=driver.findElements(By.className(“图例”)

这非常有效,我有一个包含多个Webelements的列表

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

我尝试了
tempGroupElement.getAttribute(“id”)
来获取id,但它不起作用


有什么想法吗

我在C#中有一个方法


希望对您有所帮助:)

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


我试过了,它在selenium中工作。

这将在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();

无法发布HTML部分,不知道为什么。希望这是足够的信息。不,它不起作用。Xpath是错误的。我尝试过类似的XPath,但它们也不起作用。谢谢你的回答。XPath(“//”)?对我很有吸引力。谢谢塔德斯科PS:PythonChrome驱动程序。在node.js/webdriverjs/Chrome:)中工作得很好,谢谢。帮帮我!这是我喜欢的做法。使用正确的Xpath定位器,您可以在DOM中上下移动,直到找到所需的内容。在您希望查找包含某些文本的父元素的子元素(例如)的情况下,它非常有用。Safari不支持XPath吗?对于兄弟元素,有没有这么简单的方法?
IWebElement node = WebDriver.FindElement('..');
IWebElement parent = node.GetParent();