摘自https://www.cnblogs.com/sanzangTst/p/7692285.html

前言

什么是JS?
JS就是JavaScript;
JavaScript 是世界上最流行的脚本语言;
JavaScript 是属于 web 的语言,它适用于 PC、笔记本电脑、平板电脑和移动电话;
JavaScript 被设计为向 HTML 页面增加交互性;
许多 HTML 开发者都不是程序员,但是 JavaScript 却拥有非常简单的语法。几乎每个人都有能力将小的 JavaScript 片段添加到网页中。

一、JS处理滚动条问题

1、滚动条回到顶部:
js="var q=document.getElementById('id').scrollTop=0"
driver.execute_script(js)
或者
js="var q=document.documentElement.scrollTop=0"
driver.execute_script(js)
2、滚动条拉到底部:
js="var q=document.getElementById('id').scrollTop=10000"
driver.execute_script(js)
或者
js="var q=document.documentElement.scrollTop=10000"
driver.execute_script(js)
3、滚动条拉到指定位置(具体元素):
target = driver.find_element_by_id("id_keypair")
driver.execute_script("arguments[0].scrollIntoView();", target)
4、通过模拟键盘DOWN(↓)来拖动:
driver.find_element_by_id("id").send_keys(Keys.DOWN)
5、scrollTo函数
--scrollHeight 获取对象的滚动高度。 
--scrollLeft 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离。 
--scrollTop 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离。 
--scrollWidth 获取对象的滚动宽度。
 
#滚动到底部
js = "window.scrollTo(0,document.body.scrollHeight)"
driver.execute_script(js)
#滚动到顶部
js = "window.scrollTo(0,0)"
driver.execute_script(js)

二、参考代码

 1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 # @File : jss.py
4 # @Software: PyCharm
5 from selenium import webdriver
6 import time
7 from selenium.webdriver.common.keys import Keys
8 url = 'http://www.cnblogs.com/sanzangTst/'
9 browser = webdriver.Firefox()
10 browser.get(url)
11 time.sleep(3)
12 # 拉到底部
13 js="var q=document.documentElement.scrollTop=10000"
14 browser.execute_script(js)
15
16 # 回到顶部
17 js="var q=document.documentElement.scrollTop=0"
18 browser.execute_script(js)
19
20 # 拖到指定位置
21 target = browser.find_element_by_id("homepage1_HomePageDays_DaysList_ctl05_DayList_TitleUrl_0")
22 browser.execute_script("arguments[0].scrollIntoView();", target)
23
24 #滚动到底部
25 js = "window.scrollTo(0,document.body.scrollHeight)"
26 browser.execute_script(js)
27
28 #滚动到顶部
29 js = "window.scrollTo(0,0)"
30 browser.execute_script(js)

自动化测试基础篇--Selenium中JS处理滚动条的更多相关文章

  1. 自动化测试基础篇--Selenium中JS处理浏览器弹窗

    摘自https://www.cnblogs.com/sanzangTst/p/7692454.html 浏览器弹窗: 现在大多数网站都会使用自定义弹窗,使用Selenium自带的方法暂时处理不了,这时 ...

  2. 自动化测试基础篇--Selenium中数据参数化之TXT

    摘自https://www.cnblogs.com/sanzangTst/p/7722594.html 一.搜索参数化 在TXT文件中保存需要搜索的内容: 测试代码: 1 #!/usr/bin/env ...

  3. 自动化测试基础篇--Selenium等待时间

    摘自https://www.cnblogs.com/sanzangTst/p/8376221.html 当你觉得你的定位没有问题,但是却直接报了元素不可见,那你就可以考虑是不是因为程序运行太快或者页面 ...

  4. 自动化测试基础篇--Selenium简介

    摘自https://www.cnblogs.com/sanzangTst/p/7452636.html 一.软件开发的一般流程 二.什么叫软件测试? 软件测试(英语:Software Testing) ...

  5. 引用 自动化测试基础篇--Selenium简介

    原文链接:http://www.cnblogs.com/sanzangTst/p/7452636.html 鸣谢参藏法师 一.软件开发的一般流程 二.什么叫软件测试? 软件测试(英语:Software ...

  6. 自动化测试基础篇--Selenium文件上传send_keys

    摘自https://www.cnblogs.com/sanzangTst/p/8358165.html 文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单. 一般分两个场景:一 ...

  7. 自动化测试基础篇--Selenium鼠标键盘事件

    摘自https://www.cnblogs.com/sanzangTst/p/7477382.html 前面几篇文章我们学习了怎么定位元素,同时通过实例也展示了怎么切换到iframe,怎么输入用户名和 ...

  8. 自动化测试基础篇--Selenium简单的163邮箱登录实例

    摘自https://www.cnblogs.com/sanzangTst/p/7472556.html 前面几篇内容一直讲解Selenium Python的基本使用方法.学习了什么是selenium: ...

  9. 自动化测试基础篇--Selenium元素定位

    摘自https://www.cnblogs.com/sanzangTst/p/7457111.html 一.Selenium元素定位的重要性: Web自动化测试的操作:获取UI页面的元素,对元素进行操 ...

随机推荐

  1. github代码clone加速

    这阵子想看看开源项目 MyBatis 的源码,结果使用 git 的 clone 命令怎么也 clone 不下来,我以为是网速慢,上 Google 一搜,原来 Github 的域名被 DNS 污染了,我 ...

  2. Linux下获取java堆栈文件并进行分析

    当服务器内存飙升或者cpu负载飙升的时候,可以使用如下步骤排查问题: 1.终端输入top命令,键盘大写的情况下按P(cpu负载率从高到低排序)或者M(内存使用率从高到低排序),可以查看导致cpu或者内 ...

  3. MySQL中间件之ProxySQL(9):ProxySQL的查询缓存功能

    返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html ProxySQL支持查询缓存的功能,可以将后端返回的结果集缓存在自己的 ...

  4. go基础系列:数组

    了解Python.Perl.JavaScript的人想必都知道它们的数组是动态的,可以随需求自动增大数组长度.但Go中的数组是固定长度的,数组一经声明,就无法扩大.缩减数组的长度.但Go中也有类似的动 ...

  5. java实现带空格字符串的倒序输出

    import org.junit.Test; public class StringtoChar { @Test public void main(){ String str ="hello ...

  6. Oracle 数据库导出数据泵(EXPDP)文件存放的位置

    数据泵是服务器端工具,导出的文件是放在数据库所在的服务器上,当然我们知道可以通过directory目录对象来控制.目录对象默认有四个级别,当然是有优先级顺序的,优先级从上往下 1.每个文件单独的指定具 ...

  7. python同步、互斥锁、死锁

    目录 同步 同步的概念 解决线程同时修改全局变量的方式 互斥锁 使用互斥锁完成2个线程对同一个全局变量各加9999999 次的操作 上锁解锁过程 总结 死锁 避免死锁 同步 同步的概念 同步就是协同步 ...

  8. MySQL技巧(三)运算符与函数

  9. MySQL指令笔记

    -- 双中划线+空格: 单行注释, 与#相同 -- 链接数据库 mysql.exe -h localhost -P3306 -uroot -p -- 查看服务器的对外处理字符集 show variab ...

  10. 洛谷P4723 【模板】线性递推(多项式取模 线性代数)

    题意 题目链接 Sol Orz shadowice 注意,下面的代码自带O(随时TLE)倍大常数.. #include<bits/stdc++.h> #define Pair pair&l ...