当前位置: 首页 > 面试题库 >

在Selenium中查找WebElement的子节点

养焱
2023-03-14
问题内容

我正在使用Selenium来测试我的Web应用程序,并且可以使用成功找到标签By.xpath。但是,我时不时需要在该节点内找到子节点。

例:

<div id="a">
    <div>
        <span />
        <input />
    </div>
</div>

我可以:

WebElement divA = driver.findElement( By.xpath( "//div[@id='a']" ) )

但是现在我需要找到输入,所以我可以这样做:

driver.findElement( By.xpath( "//div[@id='a']//input" ) )

但是,到那时,我只拥有了代码divA,不再具有xpath了……我想做这样的事情:

WebElement input = driver.findElement( divA, By.xpath( "//input" ) );

但是这种功能不存在。我可以这样做吗?

顺便说一句:有时我需要找到一个<div>具有一定下降节点的。如何在xpath中询问“ <div>包含<span>带有文本的'hello world'”?


问题答案:

根据JavaDocs,您可以执行以下操作:

WebElement input = divA.findElement(By.xpath(".//input"));

如何在xpath中询问“包含带有文本’hello world’的跨度的div标签”?

WebElement elem = driver.findElement(By.xpath("//div[span[text()='hello world']]"));

XPath规范对此非常好阅读。



 类似资料:
  • 我有这一页: 我想按节群链接: 下面是y在以下内容中找到的解释:http://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webelement.webelement.find_element_by_xpath

  • 问题内容: 我正在使用Selenium来测试网站,如果我发现并以多个标准为依据,是否可以正常工作?例如 : 要么 问题答案: 不,不是的。您不能像这样串联/添加选择器。反正这是无效的。但是,您可以这样编写选择器,使其覆盖所有场景并将其与 这应该返回带有标签的元素列表,这些标签具有类名并且具有

  • 我想给Click一个基于样式和类名的按钮,因为在我的例子中没有唯一的类名和ID。 我已经试过了 我收到以下错误: Selenium.Common.Exceptions.NosuChelementException:消息:没有这样的元素:找不到元素:{“method”:“XPath”,“Selector”:“//A[@class='x-btn x-unselectable rp-importing-

  • 我必须在JavaSelenium应用程序中解析此元素: 我想得到一个包含所有5个孩子的列表,包括文本。当我使用WebElement中的任何选择器(xpath、cssSelector)时,它只返回4个非文本元素。有人知道怎么做吗?我是硒的新手,以前从未使用过。谢谢

  • 问题内容: 我正在尝试使用Selenium(版本2.28.0)在子元素中搜索元素,但是selenium des似乎并不将其搜索限制在子元素中。我做错了吗,还是有一种方法可以使用element.find搜索子元素? 例如,我使用以下代码创建了一个简单的测试网页: 我的python(2.6版)代码如下所示: 如果我运行: 它从第二部分返回html。因此,selenium的搜索范围并不限于element

  • 我正在尝试搜索带有Selenium(版本2.28.0)的子元素中的一个元素,但是Selenium des似乎没有将其搜索限制在子元素中。是我这样做错了,还是有办法使用Element.find搜索子元素? 对于一个示例,我使用以下代码创建了一个简单的测试网页: 我的python(2.6版)代码如下所示: 如果我跑: 它返回来自第二部分的html。所以硒并不局限于元素2。 我希望能够找到Element