如何在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 Array对象扩展indexOf()方法
May 09 Javascript
js判断浏览器类型为ie6时不执行
Jun 15 Javascript
jquery获取checkbox的值并post提交
Jan 14 Javascript
jQuery实现的网页左侧在线客服效果代码
Oct 23 Javascript
VUEJS实战之利用laypage插件实现分页(3)
Jun 13 Javascript
纯JS焦点图特效实例(可一个页面多用)
Dec 07 Javascript
vue2.0之多页面的开发的示例
Jan 30 Javascript
使用JSON格式提交数据到服务端的实例代码
Apr 01 Javascript
vue项目base64字符串转图片的实现代码
Jul 13 Javascript
Vue实现购物车实例代码两则
May 30 Javascript
Vue组件间数据传递的方式(3种)
Jul 13 Javascript
JavaScript 常见的继承方式汇总
Sep 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
php数组函数序列之in_array() - 查找数组中是否存在指定值
2011/11/07 PHP
Thinkphp模板中截取字符串函数简介
2014/06/17 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
thinkphp框架使用JWTtoken的方法详解
2019/10/10 PHP
JavaScript 轻松搞定快捷留言功能 只需一行代码
2010/04/01 Javascript
基于jQuery.Validate验证库知识点的详解
2013/04/26 Javascript
Javascript计算两个marker之间的距离(Google Map V3)
2013/04/26 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
js脚本实现数据去重
2014/11/27 Javascript
原生JavaScript+LESS实现瀑布流
2014/12/12 Javascript
jQuery中before()方法用法实例
2014/12/25 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
动态加载js、css的实例代码
2016/05/26 Javascript
详解js实现线段交点的三种算法
2016/08/09 Javascript
D3.js进阶系列之CSV表格文件的读取详解
2017/06/06 Javascript
详解Angular操作cookies方法
2018/06/01 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
2019/09/17 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
基于vue.js仿淘宝收货地址并设置默认地址的案例分析
2020/08/20 Javascript
element-ui 弹窗组件封装的步骤
2021/01/22 Javascript
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
python生成excel的实例代码
2017/11/08 Python
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
Python定时发送天气预报邮件代码实例
2019/09/09 Python
关于Python中定制类的比较运算实例
2019/12/19 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
在阿联酋购买翻新手机和平板电脑:Teckzu
2021/02/12 全球购物
介绍一下write命令
2014/08/10 面试题
学生吸烟检讨书
2014/09/14 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL