1、为什么操作滚动条

  1. 在HTML页面中,由于前端技术框架的原因,页面中的一些元素为动态显示,元素根据滚动条的下拉而被加载。
  2. 例如:页面注册同意条款,需要滚动条到最底层,才能点击同意。

2、Selenium如何操作滚动条

SeleniumWebDriver类库中并没有直接提供对滚动条进行操作方法,但是Selenium提供了可调用JavaScript脚本的方法,所以我们可以通过JavaScript脚本来达到操作滚动条的目的。
提示:

  • 滚动条:一种可控制程序显示范围的组件。
  • JavaScript:一种流行脚本语言,可以操作HTML标签。

JavaScript学习文档:http://www.w3school.com.cn/js/js_intro.asp

3、Selenium操作滚动条方法

  1. 设置JavaScritp脚本控制滚动条
    js="window.scrollTo(0,1000)
    (0:水平距离;1000:垂直距离;单位像素px)
  2. WebDriver调用JavaScritp脚本方法
    driver.execute_script(js)

提示:

  • 最顶层

js="window.scrollTo(0,0)"

  • 最底层

js="window.scrollTo(0,1000)"
注:1000不代表一定到最底层,要根据浏览器页面的实际大小。

  • 直接操作垂直距离的方式

js= "var q=document.documentElement.scrollTop=n

4、练习

需求:访问淘宝首页,在淘宝首页实现Selenium对滚动条的操作。
脚本代码:

"""
1.学习目标:掌握浏览器滚动条的操作方法
2.语法2.1使用js语言编写控制滚动条代码参数:0,表示水平距离;10000,表示垂直距离  单位:px格式:向下滚动:window.scrollTo(0,10000)向上滚动:window.scrollTo(0,0)2.2使用selenium中方法执行js代码driver.execute_script(js代码)
3.需求在页面中,控制滚动条
4.总结如果需要测试写的js代码,可以在浏览器F12,控制台console中执行查看结果。
"""
# 1.导入selenium
from selenium import webdriver
from time import sleep# 2.打开浏览器
driver = webdriver.Chrome()# 3.打开页面
url = "https://www.taobao.com"
driver.get(url)
sleep(2)# 4.滚动条操作
# 4.1 滚动条向下滚动
js_down = "window.scrollTo(0,1000)"
# 执行向下滚动操作
driver.execute_script(js_down)
sleep(2)# 4.2 滚动条向上滚动
js_up = "window.scrollTo(0,0)"
driver.execute_script(js_up)
sleep(2)# 向下滚动操作
# n为从顶部往下移动滚动距离
js1 = "var q=document.documentElement.scrollTop=2000"
driver.execute_script(js1)
sleep(2)# 5.关闭浏览器
driver.quit()

5、下拉至聚焦元素的位置

聚焦元素:就是把滚动条滚动到你想要查找的元素的位置
步骤:

# 1 定位需要聚焦元素
target = driver.find_element_xx# 2 js代码
js = "arguments[0].scrollIntoView()"# 3 执行聚焦元素操作
driver.execute_script(js代码,元素target)

示例:
页面代码片段

<!DOCTYPE html>
<html lang="zh-cn">
<head><meta charset="UTF-8"><style type="text/css">button{padding: 8px; background: #f8f8f8;border-radius: 5px}button{margin-left:200px;margin-top:2000px}</style>
</head>
<body><button type="submitA" value="注册A" title="加入会员A" >注册用户A</button>
</body>
</html>

脚本代码:

"""
1.学习目标:掌握聚焦元素的操作方法
2.语法(操作方法)2.1 定位需要聚焦元素target = driver.find_element_xx2.2 js代码js = "arguments[0].scrollIntoView()"2.3 执行聚焦元素操作driver.execute_script(js代码,元素target)
3.需求在页面中,滚动条下拉聚焦元素位置。
"""
# 1.导入selenium
from selenium import webdriver
from time import sleep
import os# 2.打开浏览器
driver = webdriver.Chrome()# 3.打开页面
url = "file:///" + os.path.abspath("./1.html")
driver.get(url)
sleep(2)# 4.滚动条下拉聚焦元素位置
# 4.1 定位需要聚焦元素-淘宝首页的END文字
element = driver.find_element_by_css_selector("[type='submitA']")# 4.2 js代码
js = "arguments[0].scrollIntoView()"# 4.3 执行聚焦元素操作
driver.execute_script(js, element)
sleep(3)# 5.关闭浏览器
driver.quit()

最后我这里给你们分享一下我所积累和真理的文档和学习资料有需要是领取就可以了

1、学习思路和方法

这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。总共十个专题足够你学习

2、想学习却无从下手,该如何学习?

这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。

3、软件测试/自动化测试【全家桶装】学习中的工具、安装包、插件....

4、有了安装包和学习资料,没有项目实战怎么办,我这里都已经准备好了往下看

最后送上一句话:
世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
如果我的博客对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦

Selenium基础 — Selenium操作浏览器窗口滚动条相关推荐

  1. selenium操作浏览器窗口最大化和刷新

    实际测试过程中经常遇到打开一个页面并不是全屏显示,但是却希望它能够全屏显示或者新增一条记录后需要刷新一下看能不能再列表中正常显示. 于是就有了今天的关于对浏览器窗口的最大化和刷新页面.需要说明的一点: ...

  2. Selenium基础 — 键盘操作

    1.键盘时间介绍 我们在实际的测试工作中,有时候我们在测试时需要使用tab键将焦点转移到下一个元素,用于验证元素的排序是否正确. webdriver的Keys()类提供键盘上所有按键的操作,甚至可以模 ...

  3. Selenium基础之------(将浏览器最大化,设置浏览器固定宽、高,操控浏览器前进、后退)(转)

    原文url:http://www.cnblogs.com/fnng/p/3171383.html 1,将浏览器最大化 我们知道调用启动的浏览器不是全屏的,这样不会影响脚本的执行,但是有时候会影响我们& ...

  4. Selenium基础 — Selenium中的expected_conditions模块(一)

    1.expected_conditions模块介绍 expected_conditions是Selenium的一个模块,主要用于对页面元素的加载进行判断,包括元素是否存在,可点击等等. Expecte ...

  5. 【selenium】对浏览器的操作 浏览器的最大化,设置浏览器的宽和高,浏览器的前进和后退,浏览器滚动条的控制

    对浏览器的操作 from selenium import webdriver import timedriver = webdriver.Chrome() driver.get("https ...

  6. 已解决python selenium模块自动化操作谷歌浏览器点击元素失效问题解决(亲测有效)

    已解决python selenium模块自动化操作浏览器点击元素,抛出异常selenium.common.exceptions.ElementClickInterceptedException: Me ...

  7. Java自动化(操作浏览器)

    Window下环境配置 第一步:下载最新的chrome浏览器版本 第二步:查看版本  下载对应版本的ChromeDriver或下载对应版本的ChromeDrive 第三步:将下载好的ChromeDri ...

  8. 手机端扣扣浏览器图片居中_实现图片始终居中显示于浏览器窗口中心位置

    盒模型 在敲代码之前,首先建立一个盒模型,这让写代码的时候变得思路清晰. 本案例中,所要实现的是图片居中显示,超出浏览器窗口部分的图片隐藏.因此,盒模型如图: 图片以浏览器窗口作为定位元素,居中显示. ...

  9. html%3ctd%3e文本自动换行,如何在表格中自动换行一列,并将表格大小设置为浏览器窗口...

    我有一个带有3个"组"的HTML表格,左侧,中间和右侧.如何在表格中自动换行一列,并将表格大小设置为浏览器窗口 +--------------------------------- ...

最新文章

  1. dhtmlxgrid表格笔记
  2. java 函数参数 返回值_java中如何用函数返回值作为post提交的参数?
  3. 给定关键字不在字典中怎么解决_什么是字典?我们为什么要学它?你不知,现在你只需1分钟就可学会...
  4. Http响应码及其含义--摘自apache官网
  5. Git修改用户名和邮箱的方法(附Git常用命令)
  6. Google推出中文图书搜索简体中文试用版(zz)
  7. Java定时任务的三种实现方法
  8. 2021软考网络工程师2004-2020年真题含答案解析(最新)
  9. Vue 常用前端UI框架
  10. Elasticsearch-7(全文搜索应用分享)
  11. 计算机系统是几位怎么看,Win10系统如何查看系统位数是32位还是64位
  12. 免费天气预报API接口
  13. 2019级软件工程应用与实践-人工智能快递柜(代码分析3)
  14. Java纯后端生成PDF格式报表的三种方案(包含echarts图表)
  15. JavaScript开发——文件夹的上传和下载
  16. 图片转成pdf的免费软件
  17. gitlab安装及配置
  18. 用计算机弹生僻字乐谱,抖音生僻字计算器乐谱 抖音生僻字计算器数字简谱
  19. 【高等数学基础进阶】定积分与反常积分-反常积分
  20. _ReturnAddress 使用

热门文章

  1. 用git从远程仓库下载代码到本地(非master分支)
  2. 微信号被封了怎么办?
  3. HTML 模仿百度首页 (html+css)
  4. [转]VC中char,TCHAR,WCHAR总结
  5. 查看AppStore中App的Appid
  6. 拉格朗日松弛(lagrangian relaxation) - An Overview
  7. 基本任务1.2Java面向对象程序(挑战任务)
  8. ubuntu如何调整界面大小
  9. android.app.fragment instantiationexception,recreate导致的Fragment报的错误
  10. Chrome 、Firefox 打开浏览器自动F11启动全屏模式