簡體   English   中英

Selenium 抓取:點擊下一步按鈕

[英]Selenium Scraping: Clicking on the Next Button

我正在嘗試在https://www.federalreserve.gov/newsevents/pressreleases.htm上抓取美聯儲的新聞稿,並抓取前幾年的文件,我需要通過單擊底部的下一步按鈕進入下一頁頁面的。

我已經嘗試了一些東西,但它們都返回了一條Message: no such element: Unable to locate element:錯誤,我無法弄清楚問題所在:

#Attempt 1
    driver.find_element_by_css_selector('.pagination-next ng-scope').click()
    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".pagination-next ng-scope"))).click()

#Attempt 2
    driver.find_element_by_xpath("//*[@id='article']/ul[2]/li[7]/a").click()

#Attempt 3
    element=WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH ,"//*[@id='article']/ul[2]/li[7]/a")))
    element.click()

誰能幫我解決我哪里出錯了? 為方便起見,下一步按鈕的 HTML 是:

<li ng-if="::directionLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-next ng-scope"><a href="" ng-click="selectPage(page + 1, $event)" ng-disabled="noNext()||ngDisabled" uib-tabindex-toggle="" class="ng-binding">Next</a></li>
     <a href="" ng-click="selectPage(page + 1, $event)" ng-disabled="noNext()||ngDisabled" uib-tabindex-toggle="" class="ng-binding">Next</a>

謝謝

文本為Next的元素是一個<a>標簽,是一個Angular元素。

<a href="" ng-click="selectPage(page + 1, $event)" ng-disabled="noNext()||ngDisabled" uib-tabindex-toggle="" class="ng-binding">Next</a>

解決方案

要單擊元素,您需要為element_to_be_clickable()引入WebDriverWait ,您可以使用以下任一定位器策略

  • 使用LINK_TEXT

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "Next"))).click()
  • 使用CSS_SELECTOR

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "li.pagination-next.ng-scope a.ng-binding"))).click()
  • 使用XPATH

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[text()='Next']"))).click()
  • 注意:您必須添加以下導入:

     from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC

暫無
暫無

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

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