我是 Selenium 的新手,希望得到建議。我試圖點擊 NPR 網站 ( https://www.npr.org/sections/news/ )上的加載更多故事按鈕。我的代碼看起來不錯,但是當我運行它時,永遠不會加載更多的故事。我沒有收到錯誤,同時代碼只是沒有按預期運行。
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Firefox(executable_path='/home/myname/projects/myproject/geckodriver')
# implicit wait for 5 seconds
driver.implicitly_wait(5)
#driver.maximize_window()
driver.get('https://www.npr.org/sections/news/')
element = driver.find_element(By.XPATH, '/html/body/main/div[2]/section/div[7]/button')
driver.execute_script("arguments[0].scrollIntoView();", element)
driver.execute_script("arguments[0].click();", element)
uj5u.com熱心網友回復:
網頁npr有一個無限滾動包裝。作為對click()三次的演示,Load more stories您可以使用以下定位器策略:
代碼塊:
driver.get("https://www.npr.org/sections/news/") WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.global-modal__dismiss"))).click() for i in range(3): driver.execute_script("arguments[0].scrollIntoView();", WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "button.options__load-more")))) WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.options__load-more"))).click() print("Load more stories clicked")控制臺輸出:
Load more stories clicked Load more stories clicked Load more stories clicked注意:您必須添加以下匯入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/391221.html
