我正在尝试为内部网站编写自动烟雾测试。问题是网站几乎主要是动态生成的。因此任何类型的唯一标识符(如ID)都是已知字符串前缀的组合,并以一个radomized数字结束。
我也不能依赖顺序,所以使用div [2]或span [25]这样的东西是不可靠的,除非有一些方法可以根据我在哪里获取span / div /输入的数量我目前通过KNOWN TEXT VALUE位于DOM中。
例如,我可以找到已知的文本值。如果我能以某种方式以编程方式确定此已知文本值的范围是55,并且我知道它与我正在寻找的其他元素嵌套2深,那么我可以执行类似" // span [55 - 2] /输入"。
我能做的最好的事情是将DOM导航到某个已知的文本值,然后从那里开始或向下工作。
鉴于这一点,在下面的例子中,当从KNOWN TEXT VALUE开始时,我将如何导航到INPUT元素?
<span id="RandomlyGenerated35673">
<span id="RandomlyGeneratedNum58532">
<span id="RandomlyGenerated78539">
<span/>
<span/>
<span id="RandomlyGenerated78539">KNOWN TEXT VALUE</span>
</span>
</span>
<input class="GENERIC-NON-UNIQUE" type="button" value="GENERIC-NON-UNIQUE"/>
</span>
&#13;
答案 0 :(得分:1)
您可以使用following
axis:
//span[. = 'KNOWN TEXT VALUE']/following::input[@type = 'button']