如何使用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();