簡體   English   中英

Selenium Webdriver - Java - 驗證末尾有三個點的部分文本顯示

[英]Selenium Webdriver - Java - Verify partial text display with three dots at the end

以下文本顯示在網頁中。

截圖

HTML代碼如下 -

<tr>
  <td valign="middle" align="left">
    <div 
      class="ellipsis" 
      style="max-width: 425px; display: inline-block;">
      HKCR\abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnop
   </div>
 </td>

使用Selenium WebDriver和Java,我想檢查只有部分文本在末尾顯示3個點。 從HTML代碼中,我只能看到全文

HKCR\abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnop

而不是最后有3個點的部分文本。 當我編寫以下代碼時,它輸出全文而不是3點的部分文本。

String text1 = webDriver.findElement(
  By.xpath(".../tr/td[1]")
).getText();

所以,我很困惑如何驗證實際只顯示部分文本。 有人可以幫忙嗎?

這里的問題是Selenium以一種不捕獲省略號隱藏的文本溢出的方式檢測“可見性”。 可見性看起來缺少一組標准, 在webdriver規范中列出 ,CSS屬性/值“text-overflow:ellipsis”不是一個。

您仍然可以測試頁面上的元素是否使用此CSS屬性。 使用Selenium驗證您想要的div具有您希望它們具有的CSS文本溢出值.getCssValue(),例如,

String cssvalue = Login.driver.findElement(By.xpath(".//*[@id='ccleaner_options_exclude_div']/table/tbody/tr/td/div")).getCssValue("text-overflow");

並檢查該值是否為“省略號”。 只要設置了該值,理論上,瀏覽器應該截斷文本並在溢出之前添加省略號!

請嘗試以下代碼並回復

String text1 = Login.driver.findElement(By.xpath("//div[ends-with(@title,'...')]")).getText();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM