我正在使用 Selenium IDE 进行一些 Web 应用程序测试,并且想引入一些随机性来分散我们的测试。我目前正在使用 SeleniumstoreAttributeValue
,您在其中给它一个 XPath 表达式,它会存储与其匹配的第一个元素(某种程度)。但是我不想存储第一个匹配项,我希望它随机选择一个子节点。
e.g.
//table[@id='mytable']//tr
选择该表的所有 tr 子项。//table[@id='mytable']//tr[0]
选择第一个 tr (假设现在是嵌套表)//table[@id='mytable']//tr[3]
选择第三个 tr 等
有什么方法(完全在xpath中)我可以说“给我一个随机的tr”,即//table[@id='mytable']//tr[SOMETHINGHERE]
每次我“评估”/“运行”时,它都会“返回”一组中的一个 tr 节点//table[@id='mytable']//tr
.
如果 XPath 表达式不会从一个调用更改为另一个调用,并且输入源也将相同,那么您将需要通过参数化提供方差,否则具有相同输入的相同函数将始终输出相同的结果 (这就是为什么我对声明性范式做出评论).
就像是:
/table[@id='mytable']/tbody/tr[$pseudoRandom mod count(../tr) + 1]
如果每个输入源都有一个评估,XPath 中最简单的伪随机性将是
/table[@id='mytable']/tbody/tr[count(//node()|//@*) mod count(../tr) + 1]
换句话说,用整个输入源的某些属性作为种子进行一些伪随机性计算。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)