Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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 Selenium getText()不工作_Java_Selenium - Fatal编程技术网

Java Selenium getText()不工作

Java Selenium getText()不工作,java,selenium,Java,Selenium,因此,对于我的项目,我使用Selenium检查DOM中是否存在重要字段。我正在分析的XML如下所示: <results> <result index="1"> <track> <creator>God</creator> </track> </result> <results> 上帝 首先,我通过运行以下命令获得所有结果标记作为webElements的列表: List<WebElement

因此,对于我的项目,我使用Selenium检查DOM中是否存在重要字段。我正在分析的XML如下所示:

<results>
<result index="1">
<track>
<creator>God</creator>
</track>
</result>
<results>

上帝
首先,我通过运行以下命令获得所有结果标记作为webElements的列表:

List<WebElement> result_list = driver.findElements(By.tagName("result"));
List result\u List=driver.findElements(按.tagName(“结果”));
然后我通过运行for循环来检查creator标记是否存在

try {
for (int i = 0; i < result_list.size(); i++) {
WebElement track = result_list.get(i).findElement(By.tagName("track"));

    System.out.println(track.findElement(By.tagName("creator")).getText());
System.out.println(track.getTagName());
System.out.println(track.getAttribute("creator"));

}
result = true;
}
catch (Exception e) {
result = false;
}
试试看{
对于(int i=0;i
我插入了print语句,以便查看每个标记所说的内容。我是selenium新手,所以我只是想确保我对web元素的迭代是正确的,这意味着对getText和getAttribute的每次调用对于循环的每次迭代都应该是不同的。唯一的问题是,每次getText()调用都会打印出一个空字符串,每次getAttribute()调用都会打印出null。为什么会这样?输出如下

<empty string> (nothing is printed, just illustrating the empty string)
track
null
(不打印任何内容,只显示空字符串)
轨道
无效的

任何帮助都将不胜感激

Selenium不处理XML。它只是HTML。请阅读文档,非常清楚。
可能有一个插件

没有返回您期望的结果,因为对属性的含义有一点误解。元素的属性在元素的标记中定义(“id”、“名称”、“样式”等)

您要做的是查找
的子元素,而您要做的是查找将返回您期望的内容的

我从未能够让
WebElement.findElement()
在不使用xpath的情况下处理另一个WebElement。比如:

WebElement parent = driver.findElement(By.id("parent"));
WebElement child = parent.findElement(By.tagName("child"));
WebElement parent = driver.findElement(By.id("parent"));
WebElement child = parnet.findElement(By.xpath(".//creator"));
似乎从来都不管用。但是,在这种情况下:

WebElement parent = driver.findElement(By.id("parent"));
WebElement child = parent.findElement(By.tagName("child"));
WebElement parent = driver.findElement(By.id("parent"));
WebElement child = parnet.findElement(By.xpath(".//creator"));

应该有用。如果您是XPath的新手,您可能需要考虑一些快速运行。

可以使用以下链接