java +selenuim使用js显示控件
操作selenium控件时,往往需要有些控件提前显示,特别是后台的一些控件,或者需要使用鼠标显示下拉的操作,有时鼠标悬停,在点击不怎么好使,就可以依靠js方式,提前让控件显示。
1.使用style的方式让其显示
案例1:
使用修改样式的block(显示)与none(不显示),方法如下:
JavascriptExecutor js = (JavascriptExecutor) driver; String myjs = "document.querySelector(\'"+css+"\').style.display='block';"; js.executeScript(myjs);
原始页面顾客管理下拉框不显示内容
修改页面样式为block,下拉框内容显示
控制台操作显示:
document.querySelector('#js_pageHD-nav > ul > li:nth-child(3) > div').style.display='block' "block"
控制台操作隐藏
document.querySelector('#js_pageHD-nav > ul > li:nth-child(3) > div').style.display='none'
确认定位元素是是否正确,在chorm控制台中打印
通过xpath定位,以及通过id定位原理类似,在document的函数中提供了很多方法
2.修改class显示样式
如鼠标浮动到发货管理,点击下面的发货,鼠标移动不好使,直接显示页面元素点击发货,观察加载的样式
1.未显示下拉框时的样式
2.显示下拉框的样式
发现从div的class=” dropMenu hideCss3” 变为class=” dropMenu hideCss3 showCss3” 页面内容就显示了,那解决办法有以下两种
方案1:删除class,不使用样式
1.步骤:1.先定位到改元素,并且获取到改元素的class
$('#headMenuLists > li:nth-child(6) > div') 定位元素 [div.dropMenu.hideCss3] $('#headMenuLists > li:nth-child(6) > div').attr('class') 获取class "dropMenu hideCss3"
步骤2:删除class
$('#headMenuLists > li:nth-child(6) > div').removeClass('dropMenu hideCss3')
界面内容显示为无样式
页面元素显示发生了变化
目前已经可以直接点击需要的元素,可以不通过鼠标移动到发货管理进行显示
2.直接设置要显示的class的样式
代码:
('#headMenuLists > li:nth-child(6) > div').attr('class',' dropMenu hideCss3 showCss3') [div.dropMenu.hideCss3.showCss3]
页面显示
3.删除class,在增加class
删除已有的class,增加新的class(如果觉得第一种太暴力了,可以删除后在增加,显示已有样式)
$('#headMenuLists > li:nth-child(6) > div').removeClass('dropMenu hideCss3') $('#headMenuLists > li:nth-child(6) > div').addClass('dropMenu hideCss3 showCss3')
以上在Java中使用就很简单
JavascriptExecutor js=(JavascriptExecutor) driver;实例js String myjs = "$('#headMenuLists > li:nth-child(6) > div').attr('class',' dropMenu hideCss3 showCss3')"; js.executeScript();//执行
4.使用js打开一个新窗口,做后台查数据很快
JavascriptExecutor js=(JavascriptExecutor) driver; js.executeScript("window.open('"+getURl+"')") #geturl为需要打开的地址,如果为空 js.executeScript("window.open('blank')");//打开空白页面
5.使用id进行显示
JavascriptExecutor js = (JavascriptExecutor) driver;
String myjs = "document.getElementById('mini_cart').style.display='block'";
js.executeScript(myjs);
java +selenuim使用js显示控件的更多相关文章
- js设置控件的隐藏与显示的两种方法
js设置控件的隐藏与显示,设置控件style的display和visibility属性就可以了,下面有个示例,需要的朋友可以参考下用JavaScript隐藏控件的方法有两种,分别是通过设置控件的sty ...
- 《手把手教你》系列技巧篇(三十八)-java+ selenium自动化测试-日历时间控件-下篇(详解教程)
1.简介 理想很丰满现实很骨感,在应用selenium实现web自动化时,经常会遇到处理日期控件点击问题,手工很简单,可以一个个点击日期控件选择需要的日期,但自动化执行过程中,完全复制手工这样的操作就 ...
- 简洁JS 日历控件 支持日期和月份选择
原文出处 以下这个JS日历控件是我的闲暇之余自己编写的,所有的代码全部在IE7/IE8/Firefox下面测试通过, 而且可以解决被iframe层遮盖的问题.现在只提供两种风格(简洁版和古典版)和两种 ...
- JS日历控件优化(增加时分秒)
JS日历控件优化 在今年7月份时候 写了一篇关于 "JS日历控件" 的文章 , 当时只支持 年月日 的日历控件,现在优化如下: 1. 在原基础上 支持 yyyy ...
- AvalonEdit-基于WPF的代码显示控件
AvalonEdit是基于WPF的代码显示控件,项目地址:https://github.com/icsharpcode/AvalonEdit,支持C#,javascript,C++,XML,HTML, ...
- 利用js日期控件重构WEB功能
开发需求:网页中的日期部门(注册页面和查询条件)都用js日期控件重写 页面一:更新员工页面 empUpdate.jsp 中增加 onfocus 事件 入职日期:<input id="h ...
- 简洁js日历控件的使用
往Web工程添加纯js日历控件 在网上找到了DatePicker.js(http://www.cnblogs.com/shenyixin/archive/2013/03/11/2954156.html ...
- CAD全屏显示控件
主要用到函数说明: MxDrawXCustomFunction::Mx_FullScreen 全屏显示控件,详细说明如下: 参数 说明 int iFull = 2 0: 不完屏,1:全屏,2:自动切换 ...
- js树形控件
js树形控件 ztree http://www.treejs.cn/
随机推荐
- Docker删除私有仓库镜像
V2 安装删除脚本 # curl https://raw.githubusercontent.com/burnettk/delete-docker-registry-image/master/dele ...
- OpenStack基础知识-单元测试工具介绍
针对以前学的内容的一个简单整理 1.单元测试工具介绍 unittest: 是 Python 的标准库,提供了最基本的单元测试功能,包括 单元测试运行器(简称runner) 和 单元测试框架.项目的单元 ...
- WampServer的安装
首先安装好Microsoft Visual C++ 然后再安装WampServer 安装过程很简单 错误解决 运行后为黄色图标(成功运行应该为绿色图标) 解决办法: 1.80端口是否被占用 你的80端 ...
- 在Eclipse中使用Maven创建Web工程
在Eclipse中使用Maven创建Web工程 1.创建maven Project工程,使用maven-archetype-webapp 2.在pom.xml文件中,设置打包类型为war <pa ...
- 如何在html文件中导入header、footer等
1.include是php函数,所以确实需要转化成.php文件--(其实除了用php,html都有自带的引入方法)2.html转化为php文件很简单,直接改一下后缀名就可以了--(如:index.ht ...
- Leetcode初级算法(字符串篇)
目录 反转字符串 颠倒整数 字符串中的第一个唯一字符 有效的字母异位词 验证回文字符串 实现strStr() 数数并说 最长公共前缀 字符串转整数(atoi) 反转字符串 和vector同样的进行sw ...
- 匿名内部类(new类时覆盖类中方法)
public class Person { private String name ; protected String getName() { return name; } public void ...
- svn常用功能使用简介
1.文档库地址: https://xxx.xxx.xxx.xxx/svn/ 2.svn添加文件 2.1 在本地电脑上任何空白地方,右键-->打开“浏览版本库(Repo-browser)”,如图: ...
- @Inherited:允许子类继承父类的注解。
在看定义注解的相关文章的时候,看到这个@Inherited注解,简单的说明并没有真正搞懂是什么意思.在网上搜索了一些相关的内容,现在把一篇文章转载过来.以便后面使用. 文章出处,转载地址:(http: ...
- springcloud中常用的注解@
@SpringBootApplication是springboot启动类,包括三个注解,他们的作用分别是: @Configuration:表示将该类作用springboot配置文件类 @EnableA ...