Selenium:如何找到下一个子元素

时间:2015-12-01 09:12:40

标签: html xpath selenium-webdriver css-selectors

我无法根据前面的子元素(这是页面中的第二个div.trigger元素)编写第二个div.row元素的确切位置

<div id='subscription'></div>
<div class='settings'></div>
<div class='generic'></div>
<div class='trigger'></div>
<div class='row'></div>
<div class='trigger'></div>
<div class='row'></div>

这样做的原因是,在加载页面时,最初不会出现触发元素。但是当我点击一个复选框时,会出现一个触发器,依此类推,因为页面中至少有3个复选框。

对于这个问题的无聊感到抱歉,但我还没有找到解决方案,而且我无可救药地被困住了。任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:1)

把所有的div带到班级&#39; row&#39;而不是第二次

//div[@class='row'][2]

答案 1 :(得分:0)

尝试xpath-expression,如下所示:

By.xpath("//div[@class='settings']/child::div[position()=2][attribute::class='row']");

(或)

By.xpath("//div[@class='settings']/following-sibling::chapter[position()=1]");