如何使用 Python 中的 Selenium webdriver 滚动网页?


有时我们需要对页面可见区域中不存在的元素执行操作。我们需要向下滚动页面才能到达该元素。

Selenium 无法直接执行滚动操作。这可以通过 Selenium 中的 Javascript Executor 和 Actions 类来实现。DOM 可以借助 Javascript 操作网页上的所有元素。

Selenium 可以借助 **execute_script()** 方法执行 Javascript 命令。对于 Javascript 解决方案,我们必须将 **true** 值传递给 **scrollIntoView()** 方法以识别页面上我们当前位置下方的对象。我们可以借助 Selenium 中的 Actions 类执行鼠标移动。

示例

使用 Javascript Executor 的代码实现。

import time
from selenium import webdriver
driver = webdriver.Chrome (executable_path="C:\chromedriver.exe")
driver.get("https://tutorialspoint.com/index.htm")
# identify element
l= driver.find_element_by_xpath("//*[text()='About Us']")
# Javascript Executor
driver.execute_script("arguments[0].scrollIntoView(true);", l)
time.sleep(0.4)
driver.close

在使用 Actions 类滚动到视图时,我们必须使用 moveToElement() 方法。此方法将执行鼠标移动到元素的中间。

示例

使用 Actions 的代码实现。

from selenium.webdriver import ActionChains
from selenium import webdriver
driver = webdriver.Chrome (executable_path="C:\chromedriver.exe")
driver.get("https://tutorialspoint.com/index.htm")
# identify element
I=driver.find_element_by_xpath("//*[text()='About Us']")
# action object creation to scroll
a = ActionChains(driver)
a.move_to_element(l).perform()

输出


更新于: 2021年2月16日

3K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.