为了账号安全,请及时绑定邮箱和手机立即绑定

如何识别没有任何标签的元素的xpath?

如何识别没有任何标签的元素的xpath?

POPMUISE 2021-06-17 14:15:06
我需要唯一标识一个元素。但是该元素没有任何标签。您能帮助唯一标识该元素吗?<div class="mbs2_support ng-binding"><strong>Customer care? </strong>Phone 999 888 777 6</div>在这里,我只需要识别没有“客户服务”部分的电话号码列。突出显示的一个(附加屏幕截图)我需要识别。我尝试遵循 xpath,但它占用了整行(包括客户列)//div[contains(text(), ' Phone 999 888 777 6')]//div[text()[normalize-space()='Phone 999 888 777 6']]
查看完整描述

3 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

“...元素没有任何标签”实际上是不正确的。必需的文本节点是 的子节点div。您可以使用以下 JavaScript 获取它(使用JavaScriptExecutor):

'return document.querySelector("div.mbs2_support").lastChild.textContent;'


查看完整回答
反对 回复 2021-06-30
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

您尝试识别的元素是text Node<div>标签的子元素。

根据您提供的用于提取文本Phone 999 888 777 6HTML,您可以使用以下方法:executeScript()

WebElement myElement = driver.findElement(By.xpath("//div[@class='mbs2_support ng-binding']"));

String myText = ((JavascriptExecutor)driver).executeScript('return arguments[0].lastChild.textContent;', myElement).toString();



查看完整回答
反对 回复 2021-06-30
?
慕神8447489

TA贡献1780条经验 获得超1个赞

只需提取差异的 text()项,其中的文本<strong>是孙子项,因此不会包括在内:

//div[contains(., 'Phone ')]/text()


查看完整回答
反对 回复 2021-06-30
  • 3 回答
  • 0 关注
  • 465 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信