Html Xpath[contains(text(),]找不到元素
我有以下html代码:Html Xpath[contains(text(),]找不到元素,html,xpath,Html,Xpath,我有以下html代码: <div id="directoryDropdown"> <div> <div id="toclistitemID6"> "5" ". " "Conclusion Page" </div> </div> 我需要选择包含结论页文本的di
<div id="directoryDropdown">
<div>
<div id="toclistitemID6">
"5"
". "
"Conclusion Page"
</div>
</div>
我需要选择包含结论页文本的div。元素的id是动态的,因此我想使用文本,但无法找到元素。
我尝试了以下xpath-s:
//div[containstext,'consummation Page']-找不到元素
//div[contains.,'consummation Page']-查找8个元素,包括此元素的所有父元素
//div[text[contains.,'consummation Page']-查找父元素div id=directoryDropdown
//div[@id='directoryDropdown']/child::div/child::div[containstext,'consummation Page']-找到0个元素
//div[containstext,结论页]/@id-找到0个元素
有人能推荐如何构建xpath来选择这个元素吗?或者使用任何其他定位器来选择包含文本的Java/Selenium测试吗?看起来CSS定位器没有这个选项
更新:在我尝试从元素复制文本后,对象开始看起来像没有5的样子。元素被找到了。所以我猜问题是实际文本在对象内部,或者不是第一个文本。在这里发布整个html:
<div id="directoryDropdown" xpath="1">
<div>
<div id="toclistitemID0"></div>
<div id="toclistitemID1" style="color: rgb(247, 181, 0);"></div>
<div id="toclistitemID2"></div>
<div id="toclistitemID5">Conclusion Page</div>
<div id="toclistitemID6"></div>
</div>
</div>
试试这个:
//div[contains(child::text(), "Conclusion Page")]
永远不要将代码/标记作为图像发布。将其作为文本发布,格式为代码。并提供一个演示1-3声明的示例。尝试//div[containstext[1],结论页]/@id。这应该会显示您选择了正确的id。检查这是否定位元素-//div[@id='directoryDropdown']/child::div/child::div[containstext,'consultation Page']@JackFleeting谢谢,但不起作用我怀疑你在问题中发布的html实际上并不代表实际的html。表达式肯定适用于示例html。找不到元素:xpath适用于示例html: