2017-07-07 54 views
0

短信從下面的HTML代碼.getText()未檢索從DIV標籤類

<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[contains(@class, 'message-title')]") 
private WebElement contentMessageTitle; 

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

你怎麼知道你有正確的元素?您是否在瀏覽器開發控制檯中嘗試過XPath,以驗證它是唯一滿足定位器的頁面(或至少第一個)? – JeffC

+0

@JeffC IMO,即使是在第一場比賽將無法在所有瀏覽器和版本來工作。定位器'xpath'或'css'必須是唯一的。 :)謝謝 – DebanjanB

+0

@JeffC我測試瀏覽器,開發者控制檯的XPATH驗證,只有特定的元素返回。 – SKV

回答

0

我也曾在我的代碼有時會遇到這樣的的getText()方法不與文本回你,而是返回一個空字符串。我已經通過讀取屬性值「的textContent」找到解決類似的問題。

您可以使用一種變通方法

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

這種方式讀課文,你可以閱讀「contentMessageTitle」定位的內容。

0

這裏是回答你的問題:

@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-main-contents']/div[@class='message-title']") 
private WebElement contentMessageTitle; 

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

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

String titleMessage = contentMessageTitle.getAttribute("text"); 
System.out.println(titleMessage); 

讓我知道如果這個回答你的問題。