为了测试应用程序的一些特性,我需要验证长的字母数字字符串。这个字符串/标签/文本(无论您在这里可以调用什么)应该在用户给定时截断。
挑战-我可以为长字符串编写一个xpath来验证标记/标签/文本/字符串本身,但复杂的部分是字符串在被截断时在结尾显示很少的点(例如thisIsLongStrin…)。
请记住,我无法在页面源代码中看到这些“dotes”。
对此有什么想法或建议吗?
提前谢谢大家。。。。。。。。。!!!!!
假设字符串为: "thisIsLongString"
"thisIsLongString"
在截短后显示的页面上: "thisIsLongStri..."
"thisIsLongStri..."
这就是工作原理:
//*[@class='abc']//*[contains(text(),'thisIsLongString')]
//*[@class='abc']//*[contains(text(),'thisIsLongStri')]
这不起作用:
//*[@class='abc']//*[contains(text(),'thisIsLongStrin...')]
我不知道应该采取什么方法来确保这些宠儿存在。
截断文本是应用CSS属性的结果 text-overflow: ellipsis
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