一. 什么是scrollIntoView

scrollIntoView是一个与页面(容器)滚动相关的API

二. 如何调用

element.scrollIntoView()  参数默认为true

参数为true:调用该函数,页面发送滚动,使element的顶部与视图(容器)顶部对齐

参数为false:使element的底部与视图(容器)底部对齐

三. 使用场景

在selenium+webdriver(python语言)做元素定位时,有的元素在页面的不可见区域,这时候需要scrollIntoView()将其拖动到可见区域,代码如下:

from selenium import webdriver

#初始化chromedriver
driver = webdriver.Chrome()

#设置隐性等待时间8s
driver.implicitly_wait(8)

#打开百度首页
driver.get("https://www.baidu.com/")

#窗口最大化
driver.maximize_window()

#使用xpath定位输入框,并输入内容 python
driver.find_element_by_xpath("//input[@id='kw']").send_keys("selenium")

#定位并点击 百度一下 的提交按钮
driver.find_element_by_xpath("//input[@id='su']").click()

#通过CSS定位到第10条搜索结果
target = driver.find_element_by_css_selector("div[id='10'] h3 a")

#利用js将定位到的元素拖动到可见区域
driver.execute_script("arguments[0].scrollIntoView();", target)

看到的情况是,我定位到的元素的标题和浏览器顶部对齐了,效果不太好

这时只要把scrollIntoView()改成scrollIntoView(false)就可以解决了

#利用js将定位到的元素拖动到可见区域
driver.execute_script("arguments[0].scrollIntoView(false);", target)

参考文章

https://blog.csdn.net/hyl94/article/details/77472154

https://www.cnblogs.com/laoniaofly/p/5954202.html

js中scrollIntoView()的用法的更多相关文章

  1. [转载]js中return的用法

    一.返回控制与函数结果,语法为:return 表达式; 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果 二.返回控制,无函数结果,语法为:return;  在大多数情况下,为事件处理函 ...

  2. js中this的用法

    经过近几周的模拟面试题,我查询了一些资料,今天就来说说,在js中this的用法吧.方法有四:第一,用作全局变量,第二,用作表该对象,第三,用作构造函数,第四,用作call和applay

  3. JQuery之append和appendTo的区别,还有js中的appendChild用法

    JQuery之append和appendTo的区别 append()前面是要选择的对象,后面是要在对象内插入的元素内容 appendTo()前面是要插入的元素内容且为Jquery对象,而后面是要选择的 ...

  4. JS中event.keyCode用法及keyCode对…

    js中event.keyCode用法及keyCode对照表 标签: javascriptJavaScriptJavascriptjavaScript 2012-12-11 15:11 HTML Jav ...

  5. 浅谈JS中 reduce() 的用法

    过去有很长一段时间,我一直很难理解 reduce() 这个方法的具体用法,平时也很少用到它.事实上,如果你能真正了解它的话,其实在很多地方我们都可以用得上,那么今天我们就来简单聊聊JS中 reduce ...

  6. JS中 reduce() 的用法

    过去有很长一段时间,我一直很难理解 reduce() 这个方法的具体用法,平时也很少用到它.事实上,如果你能真正了解它的话,其实在很多地方我们都可以用得上,那么今天我们就来简单聊聊JS中 reduce ...

  7. JS中的this用法详解

    随着对js的深入学习和使用,你会发现它里面包含了很多令人困惑的机制,比如对象.闭包.原型链继承等等,而这其中肯定包含令你现在或者曾经费解的this,如果你不把心一横,花点时间还真不明白这个this的用 ...

  8. JS中document.createElement()用法及注意事项

    今天处理了一个日期选择器的ie和ff的兼容问题,本来这种情况就很难找错误,找了好久才把错误定位到js中创建元素的方法document.createElement(),这个方法在ie下支持这样创建元素 ...

  9. JS中$含义和用法

    原博客:https://www.cnblogs.com/jokerjason/p/7404649.html$在JS中本身只是一个符号而异,在JS里什么也不是.但在JS应用库JQUERY的作者将之做为一 ...

随机推荐

  1. javascript实例:路由的跳转

    <!doctype html> <html lang="en"> <body> <a href="#/home"> ...

  2. 20170520 BADI增强学习

    一.要求:Tcode:FF_5 导入数据运行时,产生财务凭证之前修改某些字段值.Exmp:FEBRE-VWEZWBKPF-XBLNRFEBEP-CHECTBSEG-ZUONR there is a b ...

  3. More about Parameter Passing in Python(Mainly about list)

    我之前写了一篇关于Python参数传递(http://www.cnblogs.com/lxw0109/p/python_parameter_passing.html)的博客, 写完之后,我发现我在使用 ...

  4. What's the difference between 'Even if' and 'Even though'?

    为一个英语词组语法写一篇Blog: even if 与 even though 这两个词组大致意思相当,但强调的侧重有所不同. even if与even though的区别: even if一般引导的 ...

  5. 构建Ruby开发环境(Windows+Eclipse+Aptana Plugin)

    1.安装Ruby ①.从http://rubyinstaller.org/downloads/下载安装包:rubyinstaller-2.2.5-x64.exe,直接安装.(so easy) 2.安装 ...

  6. C++友元概念

    采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口. 但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类 ...

  7. OpenGL学习进程(5)第三课:视口与裁剪区域

    本节是OpenGL学习的第三个课时,下面介绍如何运用显示窗体的视口和裁剪区域:     (1)知识点引入:     1)问题现象: 当在窗体中绘制图形后,拉伸窗体图形形状会发生变化: #include ...

  8. Delphi中ComPort通信中的数据处理

    源: Delphi中ComPort通信中的数据处理

  9. Redis之数据存储结构

    今天去中关村软件园面试,被问到:你做项目用到的Redis处理数据用的什么结构?顿时石化,”用到的结构,不就是key-value嘛,还有什么结构?“.面试官说:“平时除了工作,要加强学习,下面的面试我觉 ...

  10. 跨平台移动开发 手机上使用Iscroll.Js的Banner

    二话不说,直接上图,看效果 需要使用Iscroll <script src="content/scripts/iscroll.js"></script> 示 ...