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 如何使用SeleniumWebDriver从以下div获取文本_Java_Selenium_Selenium Webdriver - Fatal编程技术网

Java 如何使用SeleniumWebDriver从以下div获取文本

Java 如何使用SeleniumWebDriver从以下div获取文本,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我试图获取以下2个div元素中的项的文本内容,但得到一个错误,即找不到该元素。例如,第一个div的文本内容是“Text1”。我怎样才能得到那条短信 到目前为止,我已经尝试: driver.findElement(By.xpath("//*[@id='ctrlNotesWindow']/div[3]/ul/div[1]/div[2]/div[2]")).getText()) 那就是抱怨找不到那个元素 以下是html代码: <div class="notesData"> <div

我试图获取以下2个div元素中的项的文本内容,但得到一个错误,即找不到该元素。例如,第一个div的文本内容是“Text1”。我怎样才能得到那条短信

到目前为止,我已经尝试:

driver.findElement(By.xpath("//*[@id='ctrlNotesWindow']/div[3]/ul/div[1]/div[2]/div[2]")).getText())
那就是抱怨找不到那个元素

以下是html代码:

<div class="notesData">
<div class="notesDate" data-bind="text: $.format('{0} - {1}', moment(Date).format('MMM DD, YYYY h:mm a'), User)">Text1</div>
<div class="notesText" data-bind="text: Note">Text2 on next line</div>
</div>

文本1
Text2在下一行
以下是错误,我得到:

线程“main”org.openqa.selenium.NoSuchElementException中的异常: 找不到元素: {“方法”:“xpath”,“选择器”:“/*[@id='ctrlNotesWindow']/div[3]/ul/div[1]/div[2]/div[2]”


不要使用无意义的XPath。您的错误消息告诉您“NoTouchElement”,因此您的定位器错误,这与getText无关(还没有)。尝试使用CssSelector或有意义的XPath:

 driver.findElement(By.cssSelector("#ctrlNotesWindow .notesData > .notesDate")).getText();

如果出于任何原因,您希望坚持使用Xpath:

driver.findElement(By.xpath("//div[@class='notesData']/div[@class='notesDate']")).getText();
否则,上面的css选择器答案是一个不错的选择

另一种方法是按类名定位元素:

driver.findElement(By.className("notesDate")).getText();
它与:

driver.findElement(By.xpath("//div[@class='ui-pnotify-text']")).getText();

这是一个通知。

谢谢。我已经用上述预期结果澄清了我的问题。感谢您的帮助。什么是“ctrlnoteswindow”??。。它在html代码中不存在。@BasK:它是CSS选择器,用于定位id为
ctrlnoteswindow
的元素。