Selenium Webdriver - Java - 验证末尾有三个点的部分文本显示

时间:2014-12-05 13:43:44

标签: java selenium selenium-webdriver

以下文字显示在网页上。

screenshot

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();

所以,我对如何验证实际只显示部分文本感到困惑。 有人可以帮忙吗?

2 个答案:

答案 0 :(得分:4)

这里的问题是Selenium检测到&#34;可见性&#34;以一种不会捕获省略号隐藏的文本溢出的方式。可见性看起来缺少一组标准listed here in the webdriver specs和CSS属性/值&#34;文本溢出:省略号&#34;不是一个。

您仍然可以测试页面上的元素是否使用此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");

并检查值是&#34;省略号&#34;。只要设置了该值,理论上,浏览器应该截断文本并在溢出之前添加省略号!

答案 1 :(得分:-1)

请尝试以下代码并回复

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