Java 节点之间的Xpath值
我试图找出xpath节点之间的值。我已经尽了最大努力,但无法使用Xpath来确定该值Java 节点之间的Xpath值,java,selenium,xpath,Java,Selenium,Xpath,我试图找出xpath节点之间的值。我已经尽了最大努力,但无法使用Xpath来确定该值 用户的新密码为: “7b8rzyx " 假设代码位于某个div标记(或任何其他标记)中,如下所示: <div class="something"> <span class="passwordmessage" id="PasswordMessage" name="PasswordMessage"></span> <br class="">
用户的新密码为:
“7b8rzyx
"
假设代码位于某个div
标记(或任何其他标记)中,如下所示:
<div class="something">
<span class="passwordmessage" id="PasswordMessage" name="PasswordMessage"></span>
<br class="">
<br class="">
<span class="">The users new password is: </span>
"7b8rzyx
"
<br class="">
</div>
由于您使用的是Selenium,因此无法使用xpath语法直接获取文本 但这可以通过使用页面源代码和JAVA轻松解决。弦
// get the page source and remove all spaces
String pageSource = driver.getPageSource().replace(" ", "");
// split the page source into 2 based on the text and use the second
// part. This will give the required text plus the additional HTML
pageSource = pageSource.split("<span>The users new password is: </span>".replace(" ", ""))[1];
// split again using the <br/> to get the required text
pageSource = pageSource.split("<br/>")[0];
System.out.println(pageSource.trim());
//获取页面源代码并删除所有空格
字符串pageSource=driver.getPageSource().replace(“,”);
//根据文本将页面源拆分为2,并使用第二个
//部分。这将提供所需的文本和附加的HTML
pageSource=pageSource.split(“用户新密码为:”.replace(“,”))[1];
//使用
再次拆分以获取所需的文本
pageSource=pageSource.split(“
”)[0];
System.out.println(pageSource.trim());
希望这对您有所帮助。假设有一个上面的元素: xpath:
//div[@class='something']/child::text()
如果我尝试捕获div,那么它会给我更多的文本。这超出了我的要求。只需将span作为目标,它就会给我空值。@Rajesh-您能提供完整的HTML或在您提供的HTML之上和之下提供更多的HTML吗?您可以将其添加到问题中,也可以使用gist.github.com将其粘贴到此处。我希望这就是您所问的。@Rajesh-是您在
div
标记中提供的完整HTML吗?@Mehsum它返回null。抱歉,获取错误的元素。它应该是上层元素。到目前为止,只有这个选项对我有效。非常感谢+从我这边。
//div[@class='something']/child::text()