如何在selenium中使用js实现定位


Posted in Javascript onAugust 18, 2020

学习selenium的时候经常用扫的定位方式WebDriver定位方式,但是一些Windows的窗口就无力了,这时候可以用js定位

使用js定位的时候是用DOM树定位方式

eg:

document.getElementById("su");

这里就可以看出来,和浏览器中的console控制台的定位方式一样样的——果然知识都是相通的

如何在selenium中使用js实现定位

接下来就是正题:

selenium中执行js脚本:

第一步首先强转成JavascriptExcetor:

JavaScriptExecutor js = (JavascriptExecutor) driver;

然后用此JavascriptExcetor对象调用js定位的方法

举例:

// 设置日期控件的读写属性
((JavascriptExecutor) driver).executeScript("document.getElementById(\"fromDate\").readOnly=false");
// 直接为日期控件强行赋值
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('fromDate').setAttribute('value','2013-06-21');");
// 富文本编辑框的处理
driver.switchTo().frame("ueditor_0");
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.body.innerHTML='ABCDEFG'");
//js模拟点击
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();",driver.findElement(By.id("su")));
//滚动条操作
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.documentElement.scrollTop=1500");
//元素赋值
document.getElementById('HD_CheckIn').value='zhangsan';
//日期类型元素赋值
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0] .value=‘2016-04-20';",driver.findElement(By*****)));

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 判断数组是否已包含了某个元素的函数
May 30 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
Jun 28 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
Apr 01 Javascript
移动端日期插件Mobiscroll.js使用详解
Dec 19 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
Feb 05 Javascript
JS实现的点击表头排序功能示例
Mar 27 Javascript
基于angular实现模拟微信小程序swiper组件
Jun 11 Javascript
ionic环境配置及问题详解
Jun 27 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
Sep 15 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
Nov 07 Javascript
webpack安装配置与常见使用过程详解(结合vue)
Jun 01 Javascript
通过实例了解JS执行上下文运行原理
Jun 17 Javascript
vue实现移动端input上传视频、音频
Aug 18 #Javascript
React冒泡和阻止冒泡的应用详解
Aug 18 #Javascript
JavaScript数组排序的六种常见算法总结
Aug 18 #Javascript
js实现简单扫雷
Nov 27 #Javascript
基于JavaScript实现大文件上传后端代码实例
Aug 18 #Javascript
javascript实现扫雷简易版
Aug 18 #Javascript
详解Vue的组件中data选项为什么必须是函数
Aug 17 #Javascript
You might like
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
农历与西历对照
2006/09/06 Javascript
jscript之Open an Excel Spreadsheet
2007/06/13 Javascript
jquery.simple.tree插件 更简单,兼容性更好的无限树插件
2010/09/03 Javascript
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
Jquery实现的角色左右选择特效
2014/05/21 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
拥Bootstrap入怀——导航栏篇
2016/05/30 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
Python进程通信之匿名管道实例讲解
2015/04/11 Python
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
Python实现图片转字符画的示例
2017/08/22 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
2017/11/23 Python
python字典改变value值方法总结
2019/06/21 Python
Python实现word2Vec model过程解析
2019/12/16 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
土木工程实习生自我鉴定
2013/09/19 职场文书
工程造价专业求职信
2014/07/17 职场文书
公司人事专员岗位职责
2014/08/11 职场文书
地球物理学专业推荐信
2014/09/08 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书