Selenium IDE中用contains断言文本包含指定内容的方法及疑问求助
Selenium IDE文本包含检查与XPath疑问解答
一、实现“包含dodgeball文本”的检查方法
你可以通过在XPath中集成contains()函数定位目标元素,再用断言命令验证元素存在,具体操作如下:
- 替换原有命令的
Target为带contains()的XPath:- 区分大小写版本:
xpath=//div[@id='vvp-items-grid']/div/div/div/a/span/span[2][contains(text(), 'dodgeball')] - 不区分大小写版本(避免大小写匹配问题):
xpath=//div[@id='vvp-items-grid']/div/div/div/a/span/span[2][contains(translate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'dodgeball')]
- 区分大小写版本:
- 将命令从
assert text改为assert element present,Value栏留空即可。这样就能验证页面上存在包含“dodgeball”文本的目标元素。
如果坚持使用assert text命令,也可以保留原XPath,在Value栏用JavaScript表达式实现包含检查:
- Command:
assert text - Target:
xpath=//div[@id='vvp-items-grid']/div/div/div/a/span/span[2] - Value:
${target.toLowerCase().includes('dodgeball')}
二、关于.,的含义解释
你看到的官方示例里的.,应该是contains(., '目标文本')的写法,这里的.和,是两个独立的语法:
.是XPath的节点引用,代表当前上下文节点,它会匹配该节点及其所有子节点的全部文本内容;而text()仅匹配当前节点的直接文本(不包含子节点文本)。比如contains(., 'dodgeball')能覆盖元素内所有层级的文本,适用性更广。,只是contains()函数的参数分隔符,用来分隔“要检查的内容”和“目标文本”,不是转义符。
内容的提问来源于stack exchange,提问作者Sockie
相关产品推荐
相关产品推荐

