selenium中hidden或者是display = none的元素定位到但是不可以操作怎么办?

1、selenium中hidden或者是display = none的元素定位到但是不可以操作怎么办?

@FindBy(id = "bs3Select")
public WebElement 状态;
查询条件“状态“是多选查询,但是这个元素是隐藏的,即style="display: none;",可以获取但是点不到

没查到好用的方法,最终用的一种笨方法,就是用Java将元素改为可见,操作后还原不可见,关键代码如下:
//将元素改为可见
String js1="document.getElementById(\"bs3Select\").style.display='';";
SFSeleniumCommon.执行js(js1);
//执行选择操作
SFSeleniumCommon.选择下拉列表记录(employeeListPage.状态, 状态);
//将元素改为可见
String js2="document.getElementById(\"bs3Select\").style.display='none';";
SeleniumCommon.执行js(js2);
//后续的操作
employeeListPage.查询按钮.click();

2、cucumber中执行js
写登出自动化脚本时遇到一个麻烦问题:鼠标移动到特定元素,就会自动出现下拉菜单,登出按钮在这个下拉菜单里。那么使用任何代码都无法模拟鼠标移动到指定元素,这时候,只能考虑指定元素出现下拉菜单时的格式变化。
这时候,通过浏览器页面直接修改这个元素的class,就出现了登出下拉菜单,这时候只要click登出按钮就可以了。另一方面的难点,就是查找这个特定元素时遇到了麻烦,因为没有id,也没有name,所以找不到,只能通过元素标签来一级级找。整个过程花了2个小时,才搞定一行js代码,代码如下:
String logoutJs="var allPageTags=document.getElementsByTagName('li');for (i=0; i<allPageTags.length; i++)if (allPageTags[i].className=='dropdown dropdown-user') {allPageTags[i].setAttribute('class','dropdown dropdown-user open');}";

SeleniumCommon.执行js(logoutJs);
登出按钮.click();
 

转载于:https://www.cnblogs.com/wuxiaoxia/p/6439204.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值