• 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();
     
  • 相关阅读:
    C语言之数组中你所不在意的重要知识
    Word2007怎样从随意页開始设置页码 word07页码设置毕业论文
    天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,增益其所不能
    高速排序算法
    Cocos2d-x中停止播放背景音乐
    Netflix公司监控内部安全的开源项目
    Linux内核——进程管理与调度
    WebService之Soap头验证入门
    Google搜索解析
    android-sdk-windows版本号下载
  • 原文地址:https://www.cnblogs.com/wuxiaoxia/p/6439204.html
Copyright © 2020-2023  润新知