水豚和文本溢出:省略号

时间:2018-08-01 10:25:58

标签: css capybara ellipsis

对于一个元素,我设置了“ text-overflow:ellipsis” css属性。我想使用Capybara测试它是否有效:)。例如。我想检查我的长文本的结尾是否隐藏。 范例html:

<div class="elli">Some long long long long long long text, and end.</div>

css示例:

.elli{
  text-overflow: ellipsis
  white-space: nowrap;
  overflow: hidden;

}

我的水豚测试(红宝石):

visit my_url
problematic_text = find(:css, ".elli").text
assert_not_match /end/, problematic_text

我收到错误消息:

Minitest::Assertion:Expected /end/ to not match "Some long long long long long long text, and end.".

省略号确实起作用,并且文本正确裁剪(我可以在运行测试的同时在UI中,浏览器中看到它),所以问题是当我获取元素的文本时,我得到了所有它,而不是显示给用户的内容。在我看来,这与element.text仅仅是显示的文本的原理相矛盾。我希望文本是这样的:

 "Some long long long l..."

有人遇到类似问题吗?有办法测试吗?

1 个答案:

答案 0 :(得分:0)

水豚依赖于驱动程序返回的文本。驱动程序试图满足WebDriver规范定义的返回文本,当前定义为https://w3c.github.io/webdriver/#get-element-text。该规范指出,它打算返回“呈现的”文本,但是作为标准给出的bot.dom.getVisibleText当前未考虑text-overflow。这意味着到目前为止,水豚无能为力,而且真的没有办法直接对其进行测试。