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

时间:2018-09-17 19:16:32

标签: selenium-webdriver xpath

为了测试应用程序的一些功能,我需要验证长字母数字字符串。并且此字符串/标签/文本(无论您在此处可以调用什么)都应该在用户给定后截断。

我在Google上搜索并尝试找到-'如何验证截断的字符串',但未找到有用的信息,因此认为问题应在此处。

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

我想确保当用户提供长字符串时显示这些“点”。

请记住,我在页面源代码中看不到这些“点”。

对此有任何想法或建议吗?

谢谢大家……... !!!!!!

假设字符串为:"thisIsLongString"

页面在截断后显示:"thisIsLongStri..."

这是有效的方法:

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

这是有效的方法:

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

这不起作用:

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

(因为溺爱不是页面的一部分)

我不确定应该采用什么方法来确保这些溺爱存在。

1 个答案:

答案 0 :(得分:2)

截断的文本是应用CSS属性text-overflow: ellipsis的结果。要检查文本是否被截断,可以使用Selenium内置方法:

Python示例

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

P.S。当然,您还应该检查(如果不确定)字符串是否足够长以被截断,即使应用了text-overflow: ellipsis属性,短字符串也不会被截断,因此看起来像

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

这应该检查应用的属性和字符串的长度是否大于20个字符...