在Selenium中查找WebElement的子节点
我正在使用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规范对此非常好阅读。
以上是 在Selenium中查找WebElement的子节点 的全部内容, 来源链接: utcz.com/qa/430004.html