Python Selenium Webdriver - 在指定的一个之后抓取 div

标签 python selenium selenium-webdriver

我正在尝试使用 Python Selenium Firefox Webdriver 从此 HTML 中获取 h2 内容“我的数据标题”

<div class="box">
    <ul class="navigation">
        <li class="live">
            <span>
                Section Details
            </span>
        </li>
    </ul>
</div>

<div class="box">
    <h2>
        My Data Title
    </h2>
</div>

<div class="box">
    <ul class="navigation">
        <li class="live">
            <span>
                Another Section
            </span>
        </li>
    </ul>
</div>

<div class="box">
    <h2>
        Another Title
    </h2>
</div>

每个 div 都有一个 box 类,所以我无法轻松识别我想要的。有没有一种方法可以告诉 Selenium 获取框类中的 h2,该框类位于具有名为 'Section Details' 的跨度的框类之后?

最佳答案

如果您想在具有文本 Section Details 的范围之后的框类中获取 h2,请尝试下面的 xpath使用前述:-

(//h2[preceding::span[normalize-space(text()) = 'Section Details']])[1]

或使用以下:

(//span[normalize-space(text()) = 'Section Details']/following::h2)[1]

对于另一个部分,只需将xpath中的跨度文本更改为:-

(//h2[preceding::span[normalize-space(text()) = 'Another Section']])[1]

(//span[normalize-space(text()) = 'Another Section']/following::h2)[1]

关于Python Selenium Webdriver - 在指定的一个之后抓取 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38658052/

相关文章:

java - 如果它不能为空,但需要初始化,我该怎么办?

java - Selenium 找不到元素

selenium - 执行foreach循环时可以遍历另一个页面吗?

python脚本卡在从标准输入读取

python - 将字典与行值映射

python - python 以这种方式(成对)处理 locals() 的原因是什么?

java - 使用相同的网络驱动程序进行 2 次测试

java - Selenium 不等待元素可点击

javascript - 我什么时候必须等待 Protractor 中的 promise ?

python - 删除所有 DockWidgets 后如何调整 QMainWindow 的大小?