是否可以在Selenium中使用以下和之前的组合?

时间:2017-07-28 07:04:31

标签: xpath selenium-webdriver

enter image description here在此页面上 https://en.wikipedia.org/wiki/Trinity_Seven#Episode_list 我有:

rdmNumber= ThreadLocalRandom.current().nextInt(1, 10 +1);`


 if(rdmNumber <= precentToWin)

但它只会注册以下内容。

默认的firepath选择器是://*[text()='Reception']//preceding::th[contains(@id, 'ep')]//following::I 但是已知这种选择器经常断开。只是想知道是否有更好的方法,我认为这可能是一种方式。

谢谢! :) - 你可以看到桌子下面的东西不是我想要的东西:S

2 个答案:

答案 0 :(得分:1)

尝试在XPath下方使用以匹配所需元素:

//th[contains(@id, 'ep')]/following::I[./following::*[text()='Reception']]

答案 1 :(得分:0)

这看起来更简单

//tr[contains(@class, 'vevent')]//i
不要过分复杂化。每行中都需要I个标记。所以只需找到行定位器tr[contains(@class, 'vevent')]并获取它I

另一个很好的方法,如果你想检查父元素内部是否有一些特殊元素,但你想找到一些第三个元素就是使用这样的样式://element[./specific]//child,所以在你的情况下:

//tr[contains(@class, 'vevent')][./th[contains(@id,'ep')]]//i

因此标题中包含I的行内@id,'ep'标记