Selenium3+python自动化009- js之屏幕滑动和日历操作
一、js的滑屏
1)以下脚本实现js滑屏
scroll="document.documentElement.scrollTop=800"#垂直滚动 px
scroll = "document.documentElement.scrollLeft=1000"#水平滚动
scroll="window.scrollTo(100,500)"#滚动到指定坐标
scroll="window.scrollBy(0,100)"#滑动到相对坐标
scroll="window.scrollTo(0,document.body.scrollHeight)"#获取body的高度,滑到底部
document.body.scrollWidth 获取body宽度
driver.execute_script(scroll)
2)滑动到指定元素
scroll="document.getElementById('xxxx').scrollIntoView(false)"
driver.execute_script(scroll)
#encoding=utf-8
from selenium import webdriver
from time import sleep
import os driver=webdriver.Chrome()
url='file:///' + os.path.abspath(os.path.dirname(os.getcwd()))+'/html/注册A.html'
driver.maximize_window()
driver.get(url) # 1)以下脚本实现js滑屏
scroll="document.documentElement.scrollTop=800"#垂直滚动 px
# scroll = "document.documentElement.scrollLeft=1000"#水平滚动
# scroll="window.scrollTo(100,500)"#滚动到指定坐标
# scroll="window.scrollBy(0,100)"#滑动到相对坐标
# scroll="window.scrollTo(0,document.body.scrollHeight)"#获取body的高度,滑到底部
# document.body.scrollWidth 获取body宽度 # driver.execute_script() 专门用于执行JS脚本的
# driver.execute_script(scroll)
sleep(2)
driver.execute_script(scroll) # 2)滑动到指定元素
# scrollIntoView(false) 表示元素滚动到屏幕的底部
# scrollIntoView(true) 表示元素滚动到屏幕的中间
# scroll="document.getElementById('selectA').scrollIntoView(true)"
# driver.execute_script(scroll)
二、JS的日历操作
修改元素属性
js="document.getElementById('train_date').removeAttribute('readonly');"
#encoding=utf-8
from selenium import webdriver
from time import sleep
import os driver=webdriver.Chrome() driver.maximize_window()
driver.get('https://www.12306.cn/index/')
js="document.getElementById('train_date').removeAttribute('readonly');"
# 移除readonly属性
driver.execute_script(js)
sleep(2)
# 清空默认日期
driver.find_element_by_id('train_date').clear()
driver.find_element_by_id('train_date').send_keys('2019-02-28')
Selenium3+python自动化009- js之屏幕滑动和日历操作的更多相关文章
- Selenium3+python自动化 -JS处理滚动条
selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候需要借 ...
- selenium3+python自动化50-环境搭建(firefox)
前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的. 安装环境过程中主要会遇到三个坑: 1.'geckodri ...
- selenium3+python自动化50-环境搭建(firefox)【转载】
前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的. 安装环境过程中主要会遇到三个坑: 1.'geckodri ...
- web端自动化——Selenium3+python自动化(3.7版本)-火狐62版本环境搭建
前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要.本系列依然以selenium3为基础. 一.selenium简介 Sel ...
- web端自动化——Selenium3+python自动化(3.7版本)-chrome67环境搭建
前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要.本系列依然以selenium3为基础. 一.selenium简介 Sel ...
- Selenium3+python自动化006+自动化测试概述
自动化测试概述 1.自动化分类: (1)单元测试自动化: 单元测试(Unit):模拟各种异常场景,外部依赖较少,且可以做测试单元到最小的一种测试方法. Java单元测试框架Junit.TestNG; ...
- Selenium2+python自动化-使用JS脚本处理网页滚动条
内容来自:https://www.cnblogs.com/yoyoketang/p/6128655.html JS相关知识:http://www.w3school.com.cn/js/index.as ...
- Selenium3+python自动化010-UnitTest框架简介和单元测试框架使用
一.UnitTest介绍 unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过, ...
- Selenium3+python自动化006-环境搭建
一.selenium简介 1.Selenium历史 (1)Selenium 1.0: Selenium IDE Selenium Grid Selenium RC(核心功能) Sele ...
随机推荐
- 封装dropdown模块(使用到之前写好的动画组件,封装下拉菜单)
用 showhide 改写dropdown 模块: 1.首先在 css中新增动画相关样式 /*showhide组件的样式*/ .fadeOut{ opacity:; visibility: hidde ...
- leaflet结合turf.js实现多边形分割(附源码下载)
前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...
- 「数据挖掘入门系列」Python快速入门
Python环境搭建 本次入门系列将使用Python作为开发语言.要使用Python语言,我们先来搭建Python开发平台.我们将基于Python 2.7版本.以及Python的开发发行版本Anaco ...
- if 语句 总结笔记
1.if 语句 语法: if(condition) statement1; else statement2; graph TD A[JAVA考试] -->|几天后| B(收到成绩单) B --& ...
- Treap总结
\(Treap = Tree + Heap\) 树堆(Treap),在数据结构中也称Treap,是指有一个随机附加域满足堆的性质的二叉搜索树,其结构相当于以随机数据插入的二叉搜索树.其基本操作的期望时 ...
- 卸载软件后,win10应用与功能中仍有残留,解决方案。
这个问题我已经找到解决办法了,首先打开“应用和功能”列表, 然后往下拉看到“相关设置”打开其中的“程序和功能”一项, 然后找出你想删除的应用进行卸载.
- JQuery调用WebService封装方法
//提交的webservice链接 //var url = "/wsstafffrate?OpenWebService"; //请求前拼接好的soap字符串 //var soapd ...
- 基于Docker的Consul集群实现服务发现
服务发现 其实简单说,服务发现就是解耦服务与IP地址之间的硬绑定关系,以典型的集群为例,对于集群来说,是有多个节点的,这些节点对应多个IP(或者同一个IP的不同端口号),集群中不同节点责任是不一样的. ...
- 浅谈python的第三方库——pandas(终)
作为pandas系列的最终章,本文引出一个数据"复制"问题. 示例如下: 从上图中可以看到:我们对data_pd做了删除一行的操作,但是这并没有改变变量data_pd在内存中的值, ...
- Qt实践-基于C++的UI设计基础
学习网址:http://c.biancheng.net/view/1824.html 我的代码: 头文件qwdlgmanual.h: #ifndef QWDLGMANUAL_H #define QWD ...