Selenium .getText()未从div类标记检索文本消息

Selenium .getText()未从div类标记检索文本消息,selenium,selenium-webdriver,Selenium,Selenium Webdriver,从下面的HTML代码 <div class="message-main-contents"> <div class="message-title">Title Message</div> <div class="message-content"> <div class="licenseexpiryannouncement"> <div> Message Content

从下面的HTML代码

<div class="message-main-contents">
  <div class="message-title">Title Message</div>
  <div class="message-content">
    <div class="licenseexpiryannouncement">
        <div>
            Message Content 1
            <a class="licenseexpiryannouncement-installlicenselink">Link that can be clicked</a>
            under Home> Upload.
        </div>
        <div>Message Content 2</div>
    </div>
</div>

以下是你问题的答案:

@FindBy(how = How.XPATH, using = "//div[@class='message-title']")
private WebElement contentMessageTitle;

String titleMessage = contentMessageTitle.getText();
System.out.println(titleMessage);


如果回答了您的问题,请告诉我。

以下是您问题的答案:

@FindBy(how = How.XPATH, using = "//div[@class='message-title']")
private WebElement contentMessageTitle;

String titleMessage = contentMessageTitle.getText();
System.out.println(titleMessage);


如果这能回答您的问题,请告诉我。

我在代码中也遇到过这样的情况:getText()方法不会返回文本,而是返回空字符串。我通过读取属性值“textContent”找到了解决方法

您可以使用变通方法阅读文本

String titleMessage = contentMessageTitle.getAttribute("textContent");

通过这种方式,您可以读取“contentMessageTitle”定位器的内容。

我在代码中有时也遇到这样的情况,即getText()方法不会返回文本,而是返回空字符串。我通过读取属性值“textContent”找到了解决方法

您可以使用变通方法阅读文本

String titleMessage = contentMessageTitle.getAttribute("textContent");

通过这种方式,您可以阅读“contentMessageTitle”定位器的内容。

您如何知道您拥有正确的元素?您是否在浏览器开发控制台中尝试了XPath,以验证它是页面上唯一(或至少第一个)满足定位器要求的XPath?@JeffC IMO,即使是第一个匹配,也无法在所有浏览器和版本中工作。定位器
xpath
css
需要是唯一的:Thanks@JeffC我在浏览器开发控制台中测试了XPATH,以验证只有该特定元素返回。@DebanjanB确实返回了。我一直在用它。有时您无法获得唯一的定位器。您如何知道您拥有正确的元素?您是否在浏览器开发控制台中尝试了XPath,以验证它是页面上唯一(或至少第一个)满足定位器要求的XPath?@JeffC IMO,即使是第一个匹配,也无法在所有浏览器和版本中工作。定位器
xpath
css
需要是唯一的:Thanks@JeffC我在浏览器开发控制台中测试了XPATH,以验证只有该特定元素返回。@DebanjanB确实返回了。我一直在用它。有时你无法得到一个唯一的定位器。
String titleMessage = contentMessageTitle.getAttribute("textContent");