运用js解决java selenium元素定位问题
一、解决定位并操作uneditable元素
尝试了通过id,xpath等等定位元素后点击都提示Element is not clickable at point
再看了下可以click的元素发现上面有onClick事件
查看了一下元素是span
几番操作都不行,最后还是请教的大神,通过js脚本来操作
其实浏览器中可以F12,然后同等的输入js脚本,点击Enter,发现页面会有函数对应的页面操作
将js脚本同等移动到java中
$("[data-date='2016-10-26']").mousedown()发现通过上面的js脚本可以模拟到在uneditable元素上面进行点击操作
((JavascriptExecutor) driver).executeScript("$(\"[data-date='2016-10-26']\").mousedown()");
如果这句看不懂的可以去补一下jQuery的知识点,我也是查阅jQuery才看懂的
二、顺带介绍一下js操作滚动条
String high = "scroll(0,1000)";
((JavascriptExecutor) driver).executeScript(high);
当然上面的这种写法有点多次一举,完全可以放在一句里面执行
((JavascriptExecutor) driver).executeScript("window.scroll(0,1000");
当然更加智能一点的方法是
((JavascriptExecutor) driver).executeScript("window.scroll(0,document.body.scrollHeight)");
((JavascriptExecutor) driver).executeScript("在此放入你的js脚本");
还有更加活用的直接根据页面元素的位置来移动浏览器的滚动条
比如移动某元素的顶部与浏览器齐平
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", element);
移动某元素的底部与浏览器齐平
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(false);", element);
js脚本会有$符号,记得带上“”将$涵盖,同时对于脚本语句里面有"的,要带上转义
由此得知,js脚本还是很强大的
三、有的时候你遇到的js前端代码真的特别无语
比如对于这种<a class=button search_button set_button btn btn-green>Test</a>
里面有很多空格而且这个元素也没有对应的js响应事件
这个时候就需要补充一下js前端知识
告诉一个巧的方法,关于如何找到这个元素上面的触发事件
a元素里面有文本Test,可以在对应js里面搜索到文本Test所在的位置,然后查阅一下js上下文,结合js+jQuery的知识,你就可以找到包裹的触发事件了
比如我找到的是这种
$(".set_button", infoElement).click(function(){。。。}
很显然可以通过$(".set_button").cick()来模拟a元素的点击
运用js解决java selenium元素定位问题的更多相关文章
- Java Selenium - 元素操作 (三)
接上一篇,我们依然以京东的网站做示例. 三,单选项 下面来做这样一条case: 1. 登录京东旅行网页. 2. 在国内机票板块,购买从北京到武汉的往返机票,时间为明天出发,一周后返回. 3.搜索机票. ...
- java+selenium元素定位和元素操作
1.元素定位 ID定位元素: findElement(By.id(“”)); 通过元素的名称定位元素: findElement(By.name(“”)); 通过元素的html中的位置定位元素: fin ...
- Java Selenium - 元素操作 (四)
四,弹出框 京东购物车为例 , 点击‘删除’ 或者‘移到我的关注’ ,就会弹出下面这个框框,练吧: (其实这也不是常规的弹出框,二是div css前端技术做的效果,本想做个Alert的案例,实在不好找 ...
- Java Selenium - 元素定位(一)
一,单个元素对象定位 Webdriver通过findElement() , findElements()等方法调用By对象来定位和查询元素 , findElement()返回一个元素对象,否则抛出异常 ...
- Java + selenium 元素定位(5)之By Xpath
这篇关于Xpath方法的文章和之前那篇CSS的方法一样,使用前,需要先掌握一些Xpath的相关知识.当然,网上也有各种工具可以帮助我们获取到元素的Xpath,但是这并不代表着我们就可以不用了解Xpat ...
- Java + selenium 元素定位(4)之By CSS
这篇我要介绍元素定位的倒数第二个方法啦,就是基于CSS的元素定位.关于一些CSS的知识,我这里就不累赘的讲了,以后可能会单独写一篇关于CSS的介绍.当然个人推荐如果之前完全没有CSS只是储备的,可以选 ...
- Java + selenium 元素定位(3)之By TagName
本篇介绍findElement接口中的By TagName方法.首先,要知道什么是tagname.之前我们使用F12开发者工具查看网页元素是,发现每行代码前都有<input>.<bo ...
- Java + selenium 元素定位(2)之By LinkText/PartialLinkText
本章介绍的两种方法都是对于网页上的文字链接的定位操作.根据名字,我们就可以看出来,这两者其实很相似,那么他们的不同在哪里呢. By LinkText()方法,是对一个的网页超链接,我们所需要输入的关键 ...
- Java + selenium 元素定位(1)之By id/Name/ClassName
这篇文章开始,要介绍web自动化核心的内容,也是最困难的部分了,就是定位元素,并去对元素进行操作.想要对元素进行操作,第一步,也是最重要的一步,就是要找到这个元素,如果连元素都定位不到,后续什么操作都 ...
随机推荐
- ELK+kafka构建日志收集系统
ELK+kafka构建日志收集系统 原文 http://lx.wxqrcode.com/index.php/post/101.html 背景: 最近线上上了ELK,但是只用了一台Redis在 ...
- win32下的双缓冲绘图技术
一:双缓冲原理 为了解决窗口刷新频率过快所带来的闪烁问题,利用双缓冲技术进行绘图.所谓双缓冲技术,就是将资源加载到内存,然后复制内存数据到设备DC(这个比较快),避免了直接在设备DC上绘图(这个比较慢 ...
- [原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 读取input:file的路径并显示本地图片的方法
<!doctype html> <html> <head> <meta content="text/html; charset=UTF-8" ...
- IIS7的集成模式下如何让自定义的HttpModule不处理静态文件(.html .css .js .jpeg等)请求
今天将开发好的ASP.NET站点部署到客户的服务器上后,发现了一个非常头疼的问题,那么就是IIS7的应用程序池是集成模式的话,ASP.NET项目中自定义的HttpModule会处理静态文件(.html ...
- ssh-keygen -t rsa P “” -f ~/.ssh/id_rsa不提示直接生成密钥
ssh-keygen -t rsa P "" -f ~/.ssh/id_rsa不提示直接生成密钥
- 机器学习实战-边学边读python代码(3)
程序清单2-3 归一化特征值: def autoNorm(dataSet): /* >>> barray([[ 1., 2., 3.], [ 2., 3., 4.], [ 10., ...
- System.IO.File.Create 不会自动释放,一定要Dispose
这样会导致W3P进程一直占用这个文件 System.IO.File.Create(HttpContext.Current.Server.MapPath(strName)) 最好加上Dispose Sy ...
- session失效后,登录页面嵌入iframe框架
在登录页面的onload方法中加入以下代码解决: //防止登录页面嵌入iframe框架 if (top.location != self.location){ top.location=self.lo ...
- Mac平台上OpenCV开发环境搭建
转载于:https://segmentfault.com/a/1190000000711132 linux 编译指定库.头文件的路径问题 http://blog.csdn.net/jiaweizou/ ...