我试图模拟“加载更多列表”按钮上的“https://empireflippers.com/marketplace/“网页上的clikcin,直到按钮不再是。我尝试了以下代码,但它导致“移动目标出边界”错误。
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
from selenium.webdriver.common.action_chains import ActionChains
HOME_PAGE_URL = "https://empireflippers.com/marketplace/"
driver = webdriver.Chrome('./chromedriver.exe')
driver.get(HOME_PAGE_URL)
while True:
try:
element = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH,"//button[contains(text(),'Load More Listings')]")))
ActionChains(driver).move_to_element(element).click().perform()
except Exception as e:
print (e)
break
print("Complete")
time.sleep(10)
page_source = driver.page_source
driver.quit()
我期待检索完整网页的html代码,而不加载更多的列表按钮。
2条答案
按热度按时间9q78igpj1#
因此,您尝试单击的按钮似乎在屏幕上不可见。您可以尝试以下操作:
去按那个按钮。
nwlqm0z12#
我不知道 * 为什么 *,但是尝试点击两次对我很有效。[如果我尝试用
ActionChains
点击两次,我仍然会得到同样的错误,而且我对ActionChains
不够熟悉,无法尝试修复这个错误;我通常的方法是使用.execute_script
通过JavaScript滚动到元素,然后将.click()
应用于该元素,这就是我下面所做的。]