操作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显示控件的更多相关文章

  1. js设置控件的隐藏与显示的两种方法

    js设置控件的隐藏与显示,设置控件style的display和visibility属性就可以了,下面有个示例,需要的朋友可以参考下用JavaScript隐藏控件的方法有两种,分别是通过设置控件的sty ...

  2. 《手把手教你》系列技巧篇(三十八)-java+ selenium自动化测试-日历时间控件-下篇(详解教程)

    1.简介 理想很丰满现实很骨感,在应用selenium实现web自动化时,经常会遇到处理日期控件点击问题,手工很简单,可以一个个点击日期控件选择需要的日期,但自动化执行过程中,完全复制手工这样的操作就 ...

  3. 简洁JS 日历控件 支持日期和月份选择

    原文出处 以下这个JS日历控件是我的闲暇之余自己编写的,所有的代码全部在IE7/IE8/Firefox下面测试通过, 而且可以解决被iframe层遮盖的问题.现在只提供两种风格(简洁版和古典版)和两种 ...

  4. JS日历控件优化(增加时分秒)

    JS日历控件优化      在今年7月份时候 写了一篇关于 "JS日历控件" 的文章 , 当时只支持 年月日 的日历控件,现在优化如下:      1. 在原基础上 支持 yyyy ...

  5. AvalonEdit-基于WPF的代码显示控件

    AvalonEdit是基于WPF的代码显示控件,项目地址:https://github.com/icsharpcode/AvalonEdit,支持C#,javascript,C++,XML,HTML, ...

  6. 利用js日期控件重构WEB功能

    开发需求:网页中的日期部门(注册页面和查询条件)都用js日期控件重写 页面一:更新员工页面 empUpdate.jsp 中增加 onfocus 事件 入职日期:<input id="h ...

  7. 简洁js日历控件的使用

    往Web工程添加纯js日历控件 在网上找到了DatePicker.js(http://www.cnblogs.com/shenyixin/archive/2013/03/11/2954156.html ...

  8. CAD全屏显示控件

    主要用到函数说明: MxDrawXCustomFunction::Mx_FullScreen 全屏显示控件,详细说明如下: 参数 说明 int iFull = 2 0: 不完屏,1:全屏,2:自动切换 ...

  9. js树形控件

    js树形控件 ztree http://www.treejs.cn/

随机推荐

  1. Oracle 12c登陆sys用户的方法

    本机安装过oracle 12c之后,发现用sql plus执行命令conn sys/change_on_install as sysdba; 提示如下图: 后在网上搜索此问题,需要先登陆system账 ...

  2. 【原创】智能合约安全事故回顾分析(1):The Dao事件

    首先需要说明的一点是,这个世界上没有绝对安全的技术.在区块链发展的十年里,各种基于区块链的数字货币引发的安全事故层出不穷,这些安全威胁主要来源有三个方面: 自身安全机制的问题,类似智能合约. 生态安全 ...

  3. JSP,EL和JSTL

    JSP,EL和JSTL 内容待添加...

  4. having - 函数输出限制

    引用:https://zhidao.baidu.com/question/406745181.html 对函数输出进行限制 栗子: 比如,我们可能只希望看到Store_Information数据表中销 ...

  5. POJ1033 Defragment

    题目来源:http://poj.org/problem?id=1033 题目大意: 某操作系统的文件系统中,所有的磁盘空间被分为N个大小相等的cluster,编号1至N.每个文件占用一个或多个clus ...

  6. POJ1021 2D-Nim

    题目来源:http://poj.org/problem?id=1021 题目大意: 有一种在棋盘上玩的游戏,每一步,一个玩家可以从棋盘上拿走连续行或列的棋子.谁拿到最后一颗棋子就胜利.如下图所示的棋盘 ...

  7. 忘记mysql数据库密码时进行修改方法

    长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件夹( ...

  8. Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告2(使用PyCharm )

    1.说明 在我前一篇文件(Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告1(使用IDLE ))中简单的写明了,如何生产测试报告,但是使用IDLE很麻烦, ...

  9. 使用gulp构建工具

    之前一个demo中用的是grunt,照着grunt用到的插件找了下gulp的,总体使用还算顺畅,说实话并不觉得学习成本有降低什么的,差不多.不过也遇到一些问题: 1.gulp.dest()输出目录需要 ...

  10. Git把旧仓库的分支拉到新仓库中

    背景:项目新建了个git仓库(B仓库),放改版的新项目,现在运维所有项目构建都是在一个Jenkins里构建,然后拉镜像到相应服务器里,为了不让运维每次构建不同项目需要改git仓库地址,需要把原来项目仓 ...