java如何使用SeleniumWebDriver从以下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>
以下是错误,我得到:
Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"//*[@id='ctrlNotesWindow']/div[3]/ul/div[1]/div[2]/div[2]"}
# 1 楼答案
如果出于任何原因,您希望坚持使用Xpath:
否则,上面的css选择器答案是一个不错的选择
另一种方法是按类名定位元素:
# 2 楼答案
它与:
这是一个通知
# 3 楼答案
不要使用无意义的XPath。您的错误消息告诉您“NoTouchElement”,因此您的定位器错误,这与getText无关(还没有)。尝试使用CssSelector或有意义的XPath: