当前位置: 首页 > 面试题库 >

XPath随机选择一个子节点

柴深
2023-03-14
问题内容

我正在使用Selenium IDE进行一些Web应用程序测试,并希望引入一些随机性以扩展我们的测试。我当前正在使用Selenium
storeAttributeValue,在其中给它一个XPath表达式,它存储与之匹配的第一个元素(排序)。但是我不想存储第一个匹配项,我希望它随机选择一个子节点。

例如

//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]

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



 类似资料:
  • 问题内容: 我有一个xform文档 我想使用xpath和jdom从xform中选择数据元素 似乎工作正常,并选择title元素,但 不选择模型元素。我想这与名称空间有关。 问题答案: 一些东西。您 确实 应该使用JDOM 2.0.x …(最新版本2.0.5)。2.0.x版本中的XPath API远远优于JDOM 1.x中的XPath API:请参阅https://github.com/hunter

  • 从xml中,我需要获得每个节点的名称和面积。 我知道示例xpath,比如,

  • 我是Xpath的新手。 假设我有一个xml目录可以将商品导入电子商店: 目录的第一部分是商品类别列表,第二部分是商品列表。每种商品都有一个<代码> 从上面的代码中,我需要得到这样一个好的描述:类别:夹克;标签:D 标签、颜色和尺寸可直接从<代码> 所以我的目标是选择

  • 问题内容: 如何选择前5个随机元素 但它需要所有随机元素。我只想要第一个5。 还有另一种方法可以做同样的事情吗? 问题答案: 这是从jQuery选择中获取5个随机元素的方法,无需插件! 此时,您已经从jQuery返回的所有LI中随机选择了5个DomElement 然后,您可以对它们进行任何操作, 例如更改其颜色: 或显示其合并的文本内容:

  • 问题 你想从一个序列中随机抽取若干元素,或者想生成几个随机数。 解决方案 random 模块有大量的函数用来产生随机数和随机选择元素。 比如,要想从一个序列中随机的抽取一个元素,可以使用 random.choice() : >>> import random >>> values = [1, 2, 3, 4, 5, 6] >>> random.choice(values) 2 >>> random

  • 问题内容: 我有一个数字值数组,我想从该数组中随机选择一个值,然后将其插入变量中。 我不确定您需要查看什么代码。所以, 这是我用来生成13个数字(1-13)并将其插入到数组中的循环。 效果很好,但是现在我需要从该数组中选择2个随机值(然后将其插入变量中,以备后用。 我到过很多网站,已经看到了类似的事情,例如将值插入到数组中,然后用于从数组中选择值,然后从数组中删除它。但是,无论何时我使用它都行不通