Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 节点之间的Xpath值_Java_Selenium_Xpath - Fatal编程技术网

Java 节点之间的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="">

我试图找出xpath节点之间的值。我已经尽了最大努力,但无法使用Xpath来确定该值




用户的新密码为: “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()