Fitnesse与XPath问题:Count()未返回整数而是返回列表
解决Fitnesse Slim中统计DOM元素数量的问题
嘿,我明白你在Fitnesse+Slim做浏览器测试时遇到的计数难题了!之前的两种方法都没踩对核心点,咱们来一步步修正:
为什么之前的方法行不通?
- 第一种用
number of items的方式,本质是统计文本列表项的数量,而非DOM元素的个数,所以对你的<a>下的<b>元素完全不适用。 - 第二种写法
xpath=//ol[count(li)=3]是在选择满足条件的<ol>元素,返回的是元素对象而非数值,自然和预期的整数3对不上。
正确的做法:用XPath的count()直接返回数值
你需要让XPath直接返回元素计数的整数值,再用Slim的value of提取这个数值并做校验。针对你的DOM结构<a> <b>1</b> <b>2</b> <b>3</b> </a>,正确的表格写法是:
| check | value of | xpath=count(//a/b) | 3 |
如果你的<b>是<a>的直接子元素,用//a/b就足够精准;如果是嵌套更深的后代元素,可以改成//a//b来匹配所有<a>下的<b>元素。
这个写法的核心是:count(//a/b)会直接返回整数3,Slim的value of会把这个数值提取出来,和预期值3做比对,完美解决你的计数需求!
内容的提问来源于stack exchange,提问作者eymas
相关产品推荐
相关产品推荐

