当前位置: 首页 > 知识库问答 >
问题:

Python Selenium点击下一步按钮直到结束

魏鹤轩
2023-03-14

这是我第一个问题的后续问题,我正在尝试抓取一个网站,让Selenium点击下一个(直到无法点击为止)并收集结果。

这是来自网站的html标签,带有按钮:

<div class="pager results-display">
  <span class="action-btn prev inactive" data-page="1">Prev</span>
  <span class="action-btn inactive" data-page="1">1</span>  # Currently in page 1 thus inactive
  <span class="action-btn" data-page="2">2</span>
  <span class="action-btn" data-page="3">3</span> 
  <span class="action-btn" data-page="4">4</span>
  <span class="action-btn" data-page="5">5</span>
  <span class="action-btn" data-page="6">6</span>
  <span class="action-btn" data-page="7">7</span>
  <span class="action-btn" data-page="8">8</span> 
  <span class="action-btn" data-page="9">9</span>
  <span class="action-btn" data-page="10">10</span>
  <span class="action-btn" data-page="11">11</span> 
  <span class="action-btn" data-page="12">12</span>
  <span class="action-btn" data-page="13">13</span>
  <span class="action-btn" data-page="14">14</span>
  <span class="action-btn next" data-page="2">Next</span>
</div>
<div class="no-results-display hidden" style="display: none;">
                    No companies matched your search. Try again.
                </div>

我试过这个代码:

elm = driver.find_element_by_name('pager results-display')
elm.click()

我也查过这个问题,但还是没能解决。

有什么想法吗?

共有1个答案

董良策
2023-03-14

< code > pager results-display 实际上是属于按钮的父元素的两个类。它们不是名称属性,而且< code > find _ element _ by _ name 无论如何只能获得一个名称。尝试

elm = driver.find_element_by_class_name('next')
elm.click()

请注意,如果单击后DOM发生更改,您可能每次都必须重新定位按钮。

要循环单击,只要按钮处于活动状态,您可以检查buuton是否有classinactive

while True:
    elm = driver.find_element_by_class_name('next')
    if 'inactive' in elm.get_attribute('class'):
        break;
    elm.click()
 类似资料:
  • 我有一个包含36个按钮的响应网站。乍一看,我们只能看到12个按钮,我需要验证它们的文本值,我知道如何做到这一点。但问题是我需要点击下一步按钮,直到它不可见。那么在c#中如何用selenium来做呢? 此外,在单击“下一步”时,我们需要将按钮的文本存储在一个列表或数组中,这样我就可以将所有列表添加到一个新列表中并进行比较。 看看下面的代码,我试过了。 现在上面的工作正常,但当“下一步”按钮不可用时,

  • 我想写一个代码,让Python在页面上抓取一些数据,然后单击页面底部的“下一步”按钮,在第二页上抓取一些数据,单击“下一步”按钮等,直到最后一页,在那里不再可能单击“下一步”(因为没有“下一步”)。 我想尽可能使代码通用,而不是事先指定要做的点击次数。根据这个问题(我如何让Selenium点击可变数量的“下一步”按钮?),我有下面的代码。Python不会报告任何错误,但是程序会在第一次迭代之后停止

  • 我正试图让JQuery在按下下一个按钮时自动单击该按钮。在互联网上,我发现应该是这样的(查看JQuery部分)。但由于某种原因,它不起作用。 它们必须在同一个代码中吗? 我尝试过的:JQuery: 表单中的按钮1 HTML: 表单中的按钮2 HTML:

  • 嗨,我是一个网络抓取新手,一直在尝试使用Selenium用python抓取论坛 我想让Selenium点击"下一步",直到最后一页,但我不知道如何打破循环。 当我通过部分链接找到下一个按钮时,自动单击将继续到下一个线程,例如page1- 当我按类名找到下一个按钮时,自动单击将在到达最后一页时单击“prev”按钮 我的问题是: 我应该使用哪个定位器?(按类还是按部分链接或任何其他建议? 如何打破循环

  • 我正在从分页的网页中抓取数据,一旦我抓取完一页,我需要单击下一个按钮并继续抓取下一页。一旦我抓取了所有页面并且下一个按钮不再存在,我就需要停止。下面包含我需要单击的“下一步”按钮周围的html。 我尝试过在类和链接文本上选择,但在我目前的尝试中,这两种方式都不适合我。 我的代码的2个例子: 我在网上找到的所有解决方案都不起作用,并且主要以以下错误结束: 如果错误代码的其余部分对审查有帮助,请告诉我

  • 我有一个内部web应用程序,它有一个模态对话框。不幸的是,我不能在这里发布实际的web应用程序位置,但是让我尽可能地描述一下。 当应用程序启动时,屏幕上会出现一个框,告诉您一堆文本。您可以按“下一页”以获取下一页文本 在最后一页上,“下一步”按钮被禁用,web应用程序的其余UI被启用 页面数量不定,所以我不知道我必须点击“下一步”多少次 我可以点击固定的次数(例如,如果我知道有两个页面,我可以点击