代码之家  ›  专栏  ›  技术社区  ›  Mike ASP

如何处理截断的标签或文本

  •  2
  • Mike ASP  · 技术社区  · 7 年前

    为了测试应用程序的一些特性,我需要验证长的字母数字字符串。这个字符串/标签/文本(无论您在这里可以调用什么)应该在用户给定时截断。

    挑战-我可以为长字符串编写一个xpath来验证标记/标签/文本/字符串本身,但复杂的部分是字符串在被截断时在结尾显示很少的点(例如thisIsLongStrin…)。

    请记住,我无法在页面源代码中看到这些“dotes”。

    对此有什么想法或建议吗?

    提前谢谢大家。。。。。。。。。!!!!!

    假设字符串为: "thisIsLongString"

    在截短后显示的页面上: "thisIsLongStri..."

    这就是工作原理:

    //*[@class='abc']//*[contains(text(),'thisIsLongString')]
    

    //*[@class='abc']//*[contains(text(),'thisIsLongStri')]
    

    这不起作用:

    //*[@class='abc']//*[contains(text(),'thisIsLongStrin...')]
    

    我不知道应该采取什么方法来确保这些宠儿存在。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Andersson    7 年前

    截断文本是应用CSS属性的结果 text-overflow: ellipsis

    Python示例

    element = driver.find_element_by_xpath("//*[@class='abc']//[text()='thisIsLongString']")
    assert element.value_of_css_property("text-overflow") == "ellipsis"
    

    当然,你也应该检查(如果你不确定的话)字符串是否足够长,可以被截断 文本溢出:省略号 属性时,短字符串将不会被截断,因此

    assert element.value_of_css_property("text-overflow") == "ellipsis" and len(element.text) > 20