Selenium:动态加载的页面会自动滚动到fai

2024-10-01 17:31:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python中使用Selenium来导航动态网页(link)。在

我想自动向下滚动到页面上的y点。我已经尝试了各种方法来编写这个代码,这些方法似乎在其他页面上有效,但在这个特定的网页上却不行。在

我所做的一些工作在带有Selenium的Firefox上似乎不起作用:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("http://en.boerse-frankfurt.de/etp/Deka-Oekom-Euro-Nachhaltigkeit-UCITS-ETF-DE000ETFL474")

通过滚动到y位置:

^{pr2}$

或者找到一个元素:

try:
    find_scrollpoint = driver.find_element_by_xpath("//*[@id='main-wrapper']/div[10]/div/div[1]/div[1]")
except:
    pass
else:
    scrollpoint = find_scrollpoint.location["y"]
    driver.execute_script("window.scrollTo(0, scrollpoint);")

问题:

在这样的网页上,这种非常典型的scrollTo代码可能会失败,在这种情况下会出现什么异常情况?在

有什么办法可以减轻它?也许按键可以向下滚动,但它仍然需要知道何时停止按下。在


Tags: 方法代码fromdiv网页driverseleniumlink
1条回答
网友
1楼 · 发布于 2024-10-01 17:31:54

这是一个动态的页面。我会wait for this specific element to be visible然后滚动到它的视图中。这对我有用:

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


driver = webdriver.Firefox()
driver.get("http://en.boerse-frankfurt.de/etp/Deka-Oekom-Euro-Nachhaltigkeit-UCITS-ETF-DE000ETFL474")

wait = WebDriverWait(driver, 10)
elm = wait.until(EC.visibility_of_element_located((By.XPATH, "//*[@id='main-wrapper']/div[10]/div/div[1]/div[1]")))

driver.execute_script("arguments[0].scrollIntoView();", elm)

相关问题 更多 >

    热门问题