Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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_Html_Selenium_Xpath - Fatal编程技术网

Java 选择文本时需要XPath建议

Java 选择文本时需要XPath建议,java,html,selenium,xpath,Java,Html,Selenium,Xpath,我有一个包含以下html代码的html文档: 第XYZ页 加粗的文字还有一些文字 一,。你好2。如何3。是吗?在一个段落中多写一些文字。 要仅选择文本,应使用/p[2]/text() 如果你需要打印1。2.3.您应该使用p[2]/b 如果需要同时选择两者,则应使用 //p[2]作为不带.findelelements()的字符串,然后在代码中将其拆分为一个列表使用xpath“(//p[2])/text()”,它将返回同级标记中的文本。使用xpath“(//p[2])/b”获取粗体数字1,2,

我有一个包含以下html代码的html文档:


第XYZ页
加粗的文字还有一些文字

一,。你好
2。如何
3。是吗?

在一个段落中多写一些文字。


要仅选择文本,应使用
/p[2]/text()

如果你需要打印1。2.3.您应该使用
p[2]/b


如果需要同时选择两者,则应使用
//p[2]
作为不带
.findelelements()
的字符串,然后在代码中将其拆分为一个列表

使用xpath
“(//p[2])/text()”
,它将返回同级
标记中的文本。使用xpath
“(//p[2])/b”
获取粗体数字1,2,3

要获得所需的输出,可以尝试以下操作:

List<WebElement> numberList = driver.findElements(By.xpath("(//p[2])/b"));
List<WebElement> textList = driver.findElements(By.xpath("(//p[2])/text()"));

for(int i = 0; i < textList.size() && i < numberList.size(); i++) {
    System.out.println(numberList.get(i).getText() + " " + textList.get(i).getText());
}
List numberList=driver.findElements(By.xpath((//p[2])/b));
List textList=driver.findelelements(By.xpath(“(//p[2])/text()”);
对于(int i=0;i
谢谢您的回复。XPath表达式“(//p[2])/text()”仅在XPath中工作正常,但在Selenium中,它会抛出错误:InvalidSelectorError//p[2]工作正常(因此我接受您的答案),但在Selenium中,在XPath表达式中使用text()函数会抛出错误,将其作为无效选择器。