[TOC]

前言

selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了。

常见场景:

当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的。

这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上。

滚动条是无法直接用定位工具来定位的。selenium里面也没有直接的方法去控制滚动条,

这时候只能借助JS了,还好selenium提供了一个操作js的方法:

execute_script(),可以直接执行js的脚本。

## 一、JavaScript简介

1. JavaScript是世界上最流行的脚本语言,因为你在电脑、手机、平板上浏览的所有的网页,以及无数基于HTML5的手机App,交互逻辑都是由JavaScript驱动的。简单地说,JavaScript是一种运行在浏览器中的解释型的编程语言。

那么问题来了,为什么我们要学JavaScript?

2. 有些特殊的操作selenium2+python无法直接完成的,JS刚好是这方面的强项,所以算是一个很好的补充。

二、元素聚焦

1. 虽然用上面的方法可以解决拖动滚动条的位置问题,但是有时候无法确定我需要操作的元素在什么位置,有可能每次打开的页面不一样,元素所在的位置也不一样,怎么办呢?

2. 这个时候我们可以先让页面直接跳到元素出现的位置,然后就可以操作了。同样需要借助JS去实现。

3. 元素聚焦:

```

target = driver.find_element_by_xxxx()

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

```

三、scrollTo函数

---scrollHeight 获取对象的滚动高度。

---scrollLeft 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离。

---scrollTop 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离。

---scrollWidth 获取对象的滚动宽度。

scrollTo函数不存在兼容性问题,直接用这个函数就可以了。

```

# coding:utf-8

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("https://www.baidu.com")

print(driver.name)

#滚动到底部

js = "window.scrollTo(0,document.body.scrollHeight)"

driver.execute_script(js)

#滚动到顶部

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

driver.execute_script(js)

# 聚焦元素

target = driver.find_element_by_xxxx()

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

```

mysql滚动条不见了,11-JS处理滚动条相关推荐

  1. html滚动条怎么置顶,js控制滚动条到最底端(置底)和最顶端(置顶)

    滚动条样式: body { SCROLLBAR-FACE-COLOR: #f892cc; SCROLLBAR-HIGHLIGHT-COLOR: #f256c6; SCROLLBAR-SHADOW-CO ...

  2. Selenium入门11 滚动条控制(通过js)

    这一节要有js基础.做web端的UI自动化必须要有html,css,javascript前端基础. 滚动条控制: 1 移动垂直滚动条 document.documentElement.scrollTo ...

  3. mysql w3scoll_jQuery滚动条插件 – jquery.slimscroll.js

    jquery.slimscroll.js插件是一个支持把内容放在一个盒子里面,固定一个高度,超出的则使用滚动. jquery.slimscroll.js不仅可以定义高度.宽度,还可以定义位置.滚动条大 ...

  4. vue 滚动条_轻量级 React.js 虚拟美化滚动条组件RScroll

    前几天有给大家分享一个Vue自定义滚动条组件VScroll.今天再分享一个最新开发的React PC端模拟滚动条组件RScroll. vue+pc桌面端模拟滚动条组件VScroll rscroll 一 ...

  5. selenium java 滚动条_java+selenium使用JS、键盘滑动滚动条

    本篇文章介绍如何使用JS和键盘对象对页面进行滑动滚动条-------------主要针对java做自动化测试的同学 一:使用键盘对象操作滚动条 //导包 importorg.openqa.seleni ...

  6. js获取滚动条距离浏览器顶部,底部的高度,兼容ie和firefox

    做web开发经常会碰到需要获取浏览器的滚动条与顶部和底部的距离,然后做相应的处理动作.下面作者就如何通过js来获取浏览器滚动条距离浏览器顶部和底部的高度做一下分享,这个是同时兼容ie和firefox的 ...

  7. vue watch 修改滚动条_Vue.js 中滚动条始终定位在底部的方法

    Vue.js 中滚动条始终定位在底部的方法 发布于 2020-2-23| 复制链接 分享一篇关于vue 中滚动条始终定位在底部的方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小妖过来看看吧 滚 ...

  8. js 隐藏滚动条_轻量级 React.js 虚拟美化滚动条组件RScroll

    前几天有给大家分享一个Vue自定义滚动条组件VScroll.今天再分享一个最新开发的React PC端模拟滚动条组件RScroll. vue+pc桌面端模拟滚动条组件VScroll rscroll 一 ...

  9. js怎么给div加滑动条 vue给弹出层加滑动条(一分钟学会用js加滚动条)

    @[TOC](怎么给div加滑动条 给弹出层加滑动条(一分钟学会js加滚动条)) 给div加滑动条 给需要滑动条的div加一个样式 加一个高度,加一个overflow:auto; overflow:a ...

  10. svelte-scrollbar: 基于svelte.js自定义滚动条组件|svelte3虚拟滚动条

    基于svelte3.x构建轻量级自定义pc端虚拟滚动条组件SvelteScrollbar.支持原生滚动条.自动隐藏.垂直+水平滚动.自定义尺寸/颜色及间隔等功能. 在lib目录下新建Scrollbar ...

最新文章

  1. 逻辑回归代码_Pytorch教程(四):逻辑回归
  2. SQL Server 跨数据库事务
  3. 【Sort List】cpp
  4. treeview自动从表中添加标题和列值做目录的方法2
  5. xstream xml模板_XStream – XStreamely使用Java中的XML数据的简便方法
  6. Flutter快速构建集美观与⾼性能于⼀体的APP
  7. 截取地址栏URL参数
  8. Java集合容器面试题
  9. [分享] Flask 网络开发经典书籍: Flask Web Development
  10. socket编程(十一)
  11. 两个水平排列的div顶部对齐~详细
  12. Dxg——Keil 单片机 开发笔记整理分类合集【所有的相关记录,都整理在此】
  13. paip.Net Framework各个版本的功能不同总结
  14. HP520 笔记本 驱动安装的一些问题
  15. 机器学习——《西瓜书》
  16. 【干货】一文详解计算机视觉的广泛应用:网络压缩、视觉问答、可视化、风格迁移等
  17. AndroidIOS APP启动速度专项测试方法
  18. 赛效:怎么用改图宝给图片添加水印?
  19. 树莓派4安装Debian10
  20. Node-内置模块:子进程 child_process

热门文章

  1. 【分布式ID】键高并发 分布式 全局唯一 ID 雪花算法 snowflake
  2. 【读书笔记】Java NIO (中文版) 读书笔记
  3. 【Elasticsearch】Elasticsearch 集群健康值黄色 解决方案 或者 分片 未分配
  4. 【Elasticsearch】Elasticsearch 索引策略
  5. CheckstyleException: cannot initialize module TreeWalker - TreeWalker is not allowed as a
  6. 使用 Spring Boot Security 进行安全控制
  7. android 全局 窗口,学习笔记:WindowManager显示Android全局悬浮窗口
  8. 23种设计模式(7)-代理模式
  9. 文件的下载学习笔记:
  10. Lambda学习笔记