gpt4 book ai didi

xml - XPath 随机选择一个子节点

转载 作者:数据小太阳 更新时间:2023-10-29 01:50:03 32 4
gpt4 key购买 nike

我正在使用 Selenium IDE 进行一些网络应用程序测试,并且想引入一些随机性来分散我们的测试。我目前正在使用 Selenium 的 storeAttributeValue,您可以在其中给它一个 XPath 表达式,它会存储与其匹配的第一个元素(sorta)。但是我不想存储第一个匹配项,我希望它随机选择一个子节点。

例如

//table[@id='mytable']//tr 选择此表的所有 tr 子项。//table[@id='mytable']//tr[0] 选择第一个 tr(假设现在是嵌套表)//table[@id='mytable']//tr[3]选择第三个tr等

有什么方法(完全在 xpath 中)我可以说“给我一个随机的 tr”,即 //table[@id='mytable']//tr[SOMETHINGHERE] 每次我“评估”/“运行”它将“返回”//table[@id='mytable']//tr 集合中的一个 tr 节点。

最佳答案

如果 XPath 表达式不会从一个调用更改为另一个调用,并且输入源也将相同,那么您将需要通过参数化提供方差,否则相同的函数与相同的输入将始终输出相同的结果(这就是我对声明性范式发表评论的原因)。

类似于:

/table[@id='mytable']/tbody/tr[$pseudoRandom mod count(../tr) + 1]

如果要对每个输入源进行一次评估,则 XPath 中最简单的伪随机性将是

/table[@id='mytable']/tbody/tr[count(//node()|//@*) mod count(../tr) + 1]

换句话说,以整个输入源的某些属性作为种子进行一些伪随机计算。

关于xml - XPath 随机选择一个子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5119218/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com