以下文字显示在网页上。
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();
所以,我对如何验证实际只显示部分文本感到困惑。 有人可以帮忙吗?
答案 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();