对于一个元素,我设置了“ 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..."
有人遇到类似问题吗?有办法测试吗?
答案 0 :(得分:0)
水豚依赖于驱动程序返回的文本。驱动程序试图满足WebDriver规范定义的返回文本,当前定义为https://w3c.github.io/webdriver/#get-element-text。该规范指出,它打算返回“呈现的”文本,但是作为标准给出的bot.dom.getVisibleText
当前未考虑text-overflow
。这意味着到目前为止,水豚无能为力,而且真的没有办法直接对其进行测试。