【问题标题】:How do I find elements inside of elements using Selenium with Python?如何使用 Selenium 和 Python 在元素中查找元素?
【发布时间】:2020-02-12 11:26:55
【问题描述】:

我不知道返回这个 HTML 示例中特定元素的语法。

<div class="calibre" id="calibre_link-0">
    <div class="book" title="Chapter 11. Web Scraping">
        <div class="titlepage">
            <div class="book">
                <div class="book">
                    <h1 class="title1"><a id="calibre_link-2915" class="firstname"></a>Web Scraping</h1>
                </div>
            </div>
        </div>

我尝试过的是driver.find_elements_by_tag_name('div.calibre.div') 并且也在使用 ('div.calibre .div') | ('div.calibre + div') 和其他变体。我已经设法返回页面中的所有 div 元素,但我只想返回嵌套在 calibre 类中的所有元素(即书籍、标题页、书籍和书籍)。有没有办法做到这一点?

【问题讨论】:

  • 答案属于答案帖子,而不是问题帖子。请回滚将答案添加到这篇文章中。您可以通过单击“已编辑”然后单击“编辑”来获取未格式化的答案文本以获取最新版本。但是,如果另一个建议的问题的答案可以回答您的问题,请不要回答,而是单击以同意您的问题与其重复。

标签: python html css selenium-webdriver


【解决方案1】:

如果只有一个具有“calibre”类的元素并且它是您需要的,您可以这样做:

driver.find_element_by_class_name('calibre').find_elements_by_tag_name('div')

当您执行driver.find_element_by_class_name('calibre')(或任何其他driver.find... 函数)时,该调用返回一个与驱动程序具有相同方法的对象。换句话说,您会得到一个网页,您可以像浏览整个网页一样浏览网页。

在这种情况下,driver.find_element_by_class_name('calibre') 将返回网页的一部分,其中包含类为“calibre”的 de 元素以及所有子元素。要访问它的 div,您应该使用 find_elements_by_tag_name 导航它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-07
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 2017-09-12
    • 1970-01-01
    相关资源
    最近更新 更多