当前位置: 首页 > 面试题库 >

如何使用selenium将网页滚动到目标元素

华佐
2023-03-14
问题内容

我想滚动到selenium元素,但我希望它位于页面顶部,而不仅仅是在页面上可见。

我如何才能使页面滚动,从而使滚动到的元素位于浏览器的顶部?

target = browser.find_element_by_css_selector(".answers-wrap")
actions = ActionChains(browser)
actions.move_to_element(target)
actions.perform()

问题答案:

这是我们使用此页面的示例

垂直滚动网页使用1000像素 execute_script("window.scrollBy(0,1000)")

import time
from selenium import webdriver

chrome_browser = webdriver.Chrome()
chrome_browser.get('https://stackoverflow.com/questions/61071131/'
                   'scroll-in-selenium-driver-to-make-element-at-top-of-the-page')
time.sleep(4)
''' execute_script("window.scrollBy(x-pixels,y-pixels)")
    scroll down the page by  1000 pixel vertical
'''
chrome_browser.execute_script("window.scrollBy(0,1000)")

execute_script("window.scrollBy(x-pixels,y-pixels)")

x-pixels是x轴上的数字,如果number为正数则向左移动,如果number为负数则向右移动.y-pixels是y-
axis的数字,如果number为y则向下移动。正数,如果数字为负数,则向上移动。

向下滚动网页到目标元素。

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

“ arguments [0]”表示页面的第一个索引从0开始。

代码示例

import time
from selenium import webdriver

chrome_browser = webdriver.Chrome()
chrome_browser.get('https://stackoverflow.com/questions/61071131/'
                   'scroll-in-selenium-driver-to-make-element-at-top-of-the-page')
time.sleep(4)

element = chrome_browser.find_element_by_css_selector(
    "#footer > div > nav > div:nth-child(1) > h5 > a")

chrome_browser.execute_script("arguments[0].scrollIntoView();", element)


 类似资料:
  • 我正在抓取这个网页的用户名,在滚动后加载用户 指向页面的Url:“http://www.quora.com/Kevin-Rose/followers" 我知道页面上的用户数(本例中的用户数为43812),如何滚动页面直到加载所有用户?我在互联网上搜索过同样的代码,在任何地方我都能找到几乎相同的代码行: driver.execute_script("window.scroll至(0)") 如何确定垂

  • 问题内容: 我正在抓取此网页中的用户名,该用户名在滚动后会加载用户 转到页面的网址:“ http://www.quora.com/Kevin- Rose/followers ” 我知道页面上的用户数量(在这种情况下,编号为43812)如何滚动页面,直到所有用户加载完毕?我在互联网上搜索了相同的代码,到处都可以找到几乎相同的代码行: driver.execute_script(“ window.sc

  • 问题内容: 如何使Selenium WebDriver滚动到特定元素以使其显示在屏幕上。我尝试了很多不同的选择,但是没有运气。这在c#绑定中不起作用吗? 我可以使它跳到特定的位置, 但是我希望能够将其发送到不同的元素,而不必每次都给出确切的位置。 例1) 例2) 当我观看它时,它不会将页面跳到该元素,并且异常与不在屏幕上的元素匹配。 更新:我添加了bool ex = Example.Exists(

  • 问题内容: 我目前正在使用Selenium Webdriver通过Facebook用户朋友页面进行解析,并从AJAX脚本中提取所有ID。但是我需要向下滚动才能得到所有的朋友。如何在Selenium中向下滚动。我正在使用python。 问题答案: 你可以使用 其中Y是高度(在全高清显示器上为1080)。 你也可以使用 滚动到页面底部。 如果你想滚动到无限加载的页面,例如社交网络页面,facebook

  • 我目前正在使用selenium webdriver通过facebook用户朋友页面进行解析,并从AJAX脚本中提取所有ID。但我需要向下滚动才能找到所有的朋友。我如何在硒向下滚动。我正在使用Python。

  • 问题内容: Selenium 1.x或2.x中是否可以滚动浏览器窗口,以使XPath标识的特定元素在浏览器的视野中?Selenium中有一个聚焦方法,但是在FireFox中似乎并没有实际滚动视图。有人对此有任何建议吗? 我需要这样做的原因是我正在测试页面上某个元素的点击。不幸的是,除非该元素可见,否则该事件似乎不起作用。我无法控制单击元素时触发的代码,因此无法调试或对其进行修改,因此,最简单的解决