我需要唯一标识一个元素。但是该元素没有任何标签。您能帮助唯一标识该元素吗?<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;'
慕莱坞森
TA贡献1810条经验 获得超4个赞
您尝试识别的元素是text Node
父<div>
标签的子元素。
根据您提供的用于提取文本Phone 999 888 777 6的HTML,您可以使用以下方法: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();
慕神8447489
TA贡献1780条经验 获得超1个赞
只需提取差异的 text()子项,其中的文本<strong>
是孙子项,因此不会包括在内:
//div[contains(., 'Phone ')]/text()
添加回答
举报
0/150
提交
取消