代码之家  ›  专栏  ›  技术社区  ›  Jeni

capybara和文本溢出:省略号

  •  1
  • Jeni  · 技术社区  · 7 年前

    对于一个元素,我设置了“text overflow:ellipsis”css属性。我想测试一下它是否有效:)使用水飞蓟。例如,我想检查一下我的长文本的结尾是否隐藏了。 示例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.".
    

    省略号确实有效,并且文本被正确剪切(我可以在用户界面、浏览器中看到,在测试运行时),所以问题是,当我获取元素的文本时,我得到了所有的文本,而不是向用户显示的内容。在我看来,这与element.text只是显示的文本的原则相冲突。我希望文本是这样的:

     "Some long long long l..."
    

    有类似问题的人吗?有什么方法可以测试这个吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Thomas Walpole    7 年前

    Capybara取决于司机返回的文本。驱动程序正在尝试满足WebDriver规范中要返回的文本的定义,该定义当前在 https://w3c.github.io/webdriver/#get-element-text . 该规范声明它打算返回“已呈现”的文本,但是 bot.dom.getVisibleText 因为标准目前不适用 text-overflow 考虑到。这意味着到目前为止,水飞蓟对它的作用还不多,也没有直接测试的方法。