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/
随机推荐
- 反射实现增删改查(DAO层)——查询数据
先贴出代码,后续补充自己的思路.配置文件.使用方式: /** * * 数据查询 * */ @Override public List<?> queryObject(List<Map& ...
- mui 从子页面返回至父页面,同时刷新父页面
今天在写页面的时候,有一个需求,就是新闻列表项的时候,会显示出浏览次数,点击进入页面的时候,也会有浏览次数,且浏览次数比点击之前的已经+1了.那么用户返回到新闻列表页的时候,浏览次数应该更新了. mu ...
- knockout+MVC+webapi+sqlserver完成增删查改
快过年了,公司的事情较少,想着开始学习点新东西.这段时间一个项目用到了mvc和webapi,然后一直对knockout比较感兴趣,就想着用这个框架做一个小实例.数据库采用的是sqlserver.话不多 ...
- 明天找python工作,看看这几道Python面试题吧,Python面试题No14
第1题: 如何解决验证码的问题,用什么模块,听过哪些人工打码平台? PIL.pytesser.tesseract模块 平台的话有:(打码平台特殊,不保证时效性) 云打码 挣码 斐斐打码 若快打码 超级 ...
- k8s缩放应用程序
参考:https://kubernetes.io/docs/tutorials/kubernetes-basics/ 步骤1:扩展部署 要列出部署,请使用GET部署命令:kubectl get dep ...
- jmeter 正则获取参数集合和ForEach控制器结合使用(转)
怎么把第一个请求获取的返回的多个id,在第二个请求中逐个以单个id作为请求参数来请求? 为了解决这个问题,模拟下该场景 1.请求www.163.com 主页,获取响应中的所有数字,这个获取的数字集合暂 ...
- Jmeter_Beanshell_使用Java处理JSON块(转)
[环境] ①Jmeter版本:3.2,JDK:1.8 ②前置条件:将json.jar包置于..\apache-jmeter-3.2\lib\下,并将该jar包添加到测试计划的Library中:否则会报 ...
- screen命令常用参数使用
screen简要说明 screen 会话命令可以保持本地和服务器断开后,程序继续在服务器上运行,并且运行结束后,输出最后的结果.功能结果相当于 nohup command &,但是功能远比no ...
- poj1082 Calendar Game (博弈)
题意是:Adam和Eve两人做游戏,开始给出一个日期,截止日期是2011.11.4,游戏规则如下: 每个人只能将天数增加一天或者将月份增加一天.如果下个月没有这一天,那么只能增加天数. 游戏胜利定义为 ...
- android SDK manager 无法获取更新版本的解决办法
http://mirrors.neusoft.edu.cn/eclipse/releases/luna/打开这个网址就可以看到adt的详细信息: http://developer.android.c ...