【问题标题】:Selenium: How to locate next child elementSelenium:如何定位下一个子元素
【发布时间】:2015-12-01 09:12:39
【问题描述】:

我无法根据前面的子元素(即页面中的第二个 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 个复选框。

很抱歉这个问题的菜鸟,但我还没有找到解决方案,我绝望地卡住了。任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: html xpath selenium-webdriver css-selectors


    【解决方案1】:

    取所有具有“行”类的 div,而不是取第二个

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

    【讨论】:

      【解决方案2】:

      尝试xpath-expression,如下所示:

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

      (或)

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-08-24
        • 2013-08-21
        • 1970-01-01
        • 2021-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多