zoukankan      html  css  js  c++  java
  • 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();
     
  • 相关阅读:
    【转】提高VR渲染速度的最好方法(经典转载)
    【转】提高VR渲染速度的关键
    【转】怎样提高VR渲染速度
    MySql学习05---数据类型
    MySql学习04----数据库表的基本操作
    MySql学习03----数据库基本操作
    MySql学习02----SQL编程的基本概念
    MySql学习01----数据库简介
    MySql学习路线00
    maven07-----maven中的聚合与继承
  • 原文地址:https://www.cnblogs.com/wuxiaoxia/p/6439204.html
Copyright © 2011-2022 走看看