selenium-JavaScript的处理
JavaScript的处理
在自动化过程中,遇到js处理的元素,需要使用js语言对元素进行操作,例如,滑动到浏览器的底部或者顶部,时间控件的处理,元素可见不可见以及富文本的处理等,都需要js语言的支持,在selenium中,对js脚本的调用方法是execute_script.下面结合实例来讲述。
元素不可见的操作
处理方法是用js把隐藏的显示出来,方法如下:
js="document.getElementById('li').style.display='block';"
driver.execute_script(js)
浏览器滑动操作
以百度搜索为例子,分别操作滑动到底部,滑动到顶部操作,代码如下:
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.implicitly_wait(30)
driver.maximize_window()
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
time.sleep(4)
''' 进行滑动操作,滑动到底部'''
downjs = "var q=document.documentElement.scrollTop=10000"
driver.execute_script(downjs)
''' 点击下一页,进入到第二页'''
driver.find_element_by_partial_link_text("下一页").click()
'''进行滑动操作,滑动到顶部'''
upjs = "var q=document.documentElement.scrollTop=10000"
''' 先执行滑动到底部操作,在滑动到顶部'''
driver.execute_script(downjs)
time.sleep(3)
driver.execute_script(upjs)
time.sleep(2)
driver.quit()
时间控件的处理
时间控件在测试过程中经常遇到,但大部分时间控件都是只读属性,要实现在只读属性的时间控件输入时间,可以先取消时间控件的只读属性,取消只读属性后,在Input输入框输入value即可,操作代码如下:
from selenium import webdriver
import time
driver= webdriver.Chrome()
def startJs(startTime):
'''开始时间中输入自定义的时间'''
js = "$("input[placeholder='开始时间>当前时间']").removerAttr('readonly');"
"$("input[placeholder='开始时间>当前时间']").attr('value',{0})".format(startTime)
driver.execute_script(js)
def endJs(endTime):
'''结束时间输入自定义的时间'''
js = "$("input[placeholder='结束时间>当前时间']").removerAttr('readonly');"
"$("input[placeholder='结束时间>当前时间']").attr('value',{0})".format(endTime)
driver.execute_script(js)
startJs("2019-10-10 10:00:00")
time.sleep(3)
endJs("2019-10-10 10:02:00")
selenium-JavaScript的处理的更多相关文章
- selenium - javascript - 滚动条
虽然WebDriver提供了操作浏览器的前进和后退方法,但对于浏览器滚动条并没有提供相应的操作方法.在这种情况下,就可以借助JavaScript来控制浏览器的滚动条.WebDriver提供了execu ...
- 新人学习selenium哪些资源比较有帮助?
为什么学习selenium? selenium现在基本上成了页面自动化测试的标配,具体理由我在selenium 3.0发布这篇文章里已经说明过了.当一个东西成为标准以后,那么它的能量和潜力都是巨大的. ...
- selenium docs
Note to the Reader - Docs Being Revised for Selenium 2.0! Introduction Test Automation for Web Appli ...
- JavaScript(Node.js)+ Selenium自动化测试
Selenium is a browser automation library. Most often used for testing web-applications, Selenium may ...
- 转:selenium webdriver 执行javascript代码
在用selenium webdriver 编写web页面的自动化测试代码时,可能需要执行一些javascript代码,selenium本身就支持执行js,我们在代码中import org.openqa ...
- javascript selenium全套教程发布
为什么有这个系列 目前javascript生态非常丰富,越来越多的人开始用js去做前端的ui测试了.而selenium是web ui测试的标准解决方案,所以一套js的selenium教程是很有必要的. ...
- Selenium切换窗口,警告框处理,调用JavaScript代码
多窗口切换 在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要主机切换到新打开的窗口上进行操作. WebDriver提供了switch_to.window()方法,可以实现在不同的窗口之间切 ...
- Python selenium巧用Javascript脚本注入解决按钮点选问题
前段时间,笔者忙于应付公司组织的雅思考试,白天.晚上但凡有空,笔者都是埋头伏案,啃剑桥雅思(剑4~剑12)的官方模拟题或者做着与雅思考试相关的准备工作,这个过程持续了40余天.最近总算鼓起勇气走进考场 ...
- Python selenium中注入并执行Javascript语句
众所周知,Python通常结合selenium模块来完成一些web的自动化测试以及RPA(Robotic Process Automation)工作.事实上,Selenium还可以支持插入js语句.执 ...
- 在Python中用Selenium执行JavaScript
Selenium自己不带浏览器, 需要与第三方浏览器结合在一起使用.例如在Firefox上运行Selenium. PhantomJS是一个"无头"浏览器. 它会把网站加载到内存并执 ...
随机推荐
- python高级应用
一:错误和异常 1.python错误和异常 语法错误:Python的语法错误或者解析错. 异常:运行时检测到的错误被称为异常. 2.异常处理 Python中使用try except 语句来捕获并处理异 ...
- 选课系统项目_python
一.功能简要 基本实现以下功能,但是有部分地方由于时间关系并未写,而且并未做细微的完善,大致功能完成.角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , pyt ...
- 关于java静态存储类的一个知识点
今天在写代码的时候产生了一个很奇怪的问题:静态类里的数据在其他类中更改之后,是否会保存 然后就动手试验了一下,结果是 ·在更改数据的类中,输出数据都是更够以后的数据 ·在先执行更改数据的类之后执行第二 ...
- 安卓android eclipse运行提示no compatible targets were found
在eclipse中开发安卓应用,运行项目时,右击项目名称---Run As---Android Application时, 系统提示"No compatible targets were f ...
- UML 工具 Dia
linux下一款不错的流程图工具:dia. dia是一款非常优秀的制图工具,可以用于绘制 类图,流程图等等 安装此工具: 1.打开终端(快捷键:ctrl+alt+t). 2.输入命令:$sudo ap ...
- Android 基础知识 -- Linux环境搭建
Android 开发工具下载网站:http://www.androiddevtools.cn/ 1 JDK 1.1 下载JDK,解压后放到/usr/lib/jvm/目录 sudo mv jdk1.7. ...
- Vuejs开发环境的搭建
Windows系统上搭建VueJS开发环境 1.安装node.js:在node.js官网下载对应系统的msi包并安装 注:node的安装分全局和本地模式.一般情况下会以本地模式运行,包会被安装到和你的 ...
- CentOS 安装后的常用配置
镜像配置 CentOS系统的镜像配置文件路径在 /etc/yum.repos.d/CentOS-Base.repo, 将镜像内容copy到 CentOS-Base.repo中 然后运行 yum mak ...
- jQuery使用ajax跨域请求获取数据
jQuery使用ajax跨域请求获取数据 跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的 ...
- 在线教育厮杀惨烈,51Talk一家独大之后,却仍是持续亏损?
编辑 | 于斌 出品 | 于见(mpyujian) 来自51Talk在线少儿英语专业的学生陈和涛已经成为最近<快乐营大本营>的一个亮点.该学生应邀以流利的英语在台上作自我介绍,并与51Ta ...