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

2023-04-19前端开发问题
106

本文介绍了如何使用 selenium 将网页滚动到目标元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

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

我怎样才能使页面滚动以使滚动到的元素位于浏览器的顶部?

target = browser.find_element_by_css_selector(".answers-wrap")动作 = ActionChains(浏览器)actions.move_to_element(目标)动作.执行()

解决方案

这是使用我们所在页面的示例

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

例子

导入时间从硒导入网络驱动程序chrome_browser = webdriver.Chrome()chrome_browser.get('https://stackoverflow.com/questions/61071131/''在页面顶部滚动硒驱动程序以制作元素')时间.sleep(4)''' execute_script("window.scrollBy(x-pixels,y-pixels)")垂直向下滚动页面 1000 像素'''chrome_browser.execute_script("window.scrollBy(0,1000)")

<块引用>

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

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

<小时>

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

<块引用>

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

"arguments[0]" 表示页面的第一个索引从 0 开始.

代码示例

导入时间从硒导入网络驱动程序chrome_browser = webdriver.Chrome()chrome_browser.get('https://stackoverflow.com/questions/61071131/''在页面顶部滚动硒驱动程序以制作元素')时间.sleep(4)元素 = chrome_browser.find_element_by_css_selector("#footer > div > nav > div:nth-child(1) > h5 > a")chrome_browser.execute_script("arguments[0].scrollIntoView();", 元素)

<小时>

I want to scroll to an element in selenium, but I want it to be at the top of the page, not just visible on the page.

How can I make it so that the page scrolls such that the element being scrolled to is at the top of the browser?

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

解决方案

Here is example using this page we are on

To scroll the web page by 1000 pixel vertical use execute_script("window.scrollBy(0,1000)")

Example

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 is the number at x-axis, it moves to the left if number is positive and it move to the right if number is negative .y-pixels is the number at y-axis, it moves to the down if number is positive and it move to the up if number is in negative .


To scroll down the web page to the target element.

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

"arguments[0]" means first index of page starting at 0.

Code example

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)


这篇关于如何使用 selenium 将网页滚动到目标元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

layui 实现实时刷新一个外部的div
主页面上显示了一个合计,在删除和增加的时候需要更改这个总套数的值: //html代码div class="layui-inline layui-show-xs-block" style="margin-left: 10px" id="sumDiv"spanSOP合计:/spanspan${totalNum}/spanspan套/span/div 于是在我们删除这个条数据后,...
2024-11-14 前端开发问题
156

layui要如何改变时间日历布局大小?
问题描述 我想改变layui时间日历布局大小,这个要怎么操作呢? 解决办法 可以用css样式对时间日历进行重新布局,具体代码如下: !DOCTYPE htmlhtmlheadmeta charset="UTF-8"title/titlelink rel="stylesheet" href="../../layui/css/layui.css" /style#test-...
2024-10-24 前端开发问题
271

jQuery怎么动态向页面添加代码?
append() 方法在被选元素的结尾(仍然在内部)插入指定内容。 语法: $(selector).append( content ) var creatPrintList = function(data){ var innerHtml = ""; for(var i =0;i data.length;i++){ innerHtml +="li class='contentLi'"; innerHtml +="a href...
2024-10-18 前端开发问题
125

“数组中的每个孩子都应该有一个唯一的 key prop"仅在第一次呈现页面时
quot;Each child in an array should have a unique key propquot; only on first time render of page(“数组中的每个孩子都应该有一个唯一的 key prop仅在第一次呈现页面时)...
2024-04-20 前端开发问题
5

如何制作 TextGeometry 多线?如何将它放在一个正方形内,以便它像 html 文本一样包裹在 div 内?
How do I make a TextGeometry multiline? How do I put it inside a square so it wraps like html text does inside a div?(如何制作 TextGeometry 多线?如何将它放在一个正方形内,以便它像 html 文本一样包裹在 div 内?) - IT屋-程序员软件开发技术分享社...
2024-04-20 前端开发问题
6

缩放背景图像以适合 ie8 窗口
Scale background image to fit ie8 window(缩放背景图像以适合 ie8 窗口)...
2024-04-19 前端开发问题
11