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是一个"无头"浏览器. 它会把网站加载到内存并执 ...
随机推荐
- 【巨杉数据库SequoiaDB】24 Hours , 数据库研发实录
出场人物: 08:10 小H,是巨杉数据库引擎研发的一名工程师.7:20 天还蒙蒙亮,小H就起床了,点亮了心爱的光剑,开始了新的一天. 在08:10时候,他已经洗漱完,锻炼好身体,倒好 ...
- luogu P1736 创意吃鱼法
#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #i ...
- JAVA将图片(本地或者网络资源)转为Base64字符串,将base64字符串存储为本地图片
代码如下: package com.futuredata.dataservice.util; import java.io.ByteArrayOutputStream; import java.io. ...
- vsftpd最详细的配置文件
vsftpd作为一个主打安全的FTP服务器,有很多的选项设置.下面介绍了vsftpd的配置文件列表,而所有的配置都是基于vsftpd.conf这个配置文件的.本文将提供完整的vsftpd.conf的中 ...
- Docker最全教程——从理论到实战(十八)
前言 VS Code是一个年轻的编辑器,但是确实是非常犀利.通过本篇,老司机带你使用VS Code玩转Docker——相信阅读本篇之后,无论是初学者还是老手,都可以非常方便的玩转Docker了!所谓是 ...
- Microsoft Visual Studio 显示行号
工具下面有一个选项
- Supervision meeting with Liu
data stream;streampipe/nifi data flow:1. algorithm;;;; top-k pattern, motif and so on 2. implication ...
- 删除Eclipse中的SVN账号信息-SVN切换用户
在eclipse中经常用到用svn进行代码版本控制,为了提交或更新代码的时候不反复地提示我们输入用户名和密码,于是我们就习惯把访问SVN的用户名密码自动保存起来. 以便下次自动使用,不要再次手工多次输 ...
- 164.扩展User模型-继承AbstractUser
继承自AbstractUser: 如果Abstractuser中定义的字段不能够满足你的项目的要求,并且不想要修改原来User对象上的一些字段,只是想要增加一些字段,那么这时候可以直接继承自djang ...
- Python之QRCode
目录 一.基本介绍 介绍 QRCode二维码版本展示 QRCode方法 常用函数 二.安装QRCode 三.基本案例 生成普通二维码: 生成带有图片的二维码: 四.制作动态二维码 安装 myqr 和 ...