簡體   English   中英

Python Selenium單擊下一步按鈕直到結束

[英]Python Selenium clicking next button until the end

這是我第一個問題的后續問題 ,我正在嘗試抓取一個網站,讓Selenium單擊next (直到無法單擊為止),並收集結果。

這是帶有按鈕的網站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()

而且我也檢查了這個問題 ,但仍然無法解決。

有什么想法嗎?

pager results-display實際上是屬於按鈕的父元素的兩個類。 它們不是name屬性,無論如何, find_element_by_name僅獲得一個名稱。 嘗試

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

請注意,如果單擊后DOM發生了更改,則每次可能必須重新定位按鈕。

要在按鈕處於活動狀態時單擊循環,您可以檢查按鈕是否處於inactive

while True:
    elm = driver.find_element_by_class_name('next')
    if 'inactive' in elm.get_attribute('class'):
        break;
    elm.click()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM