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();
     
  • 相关阅读:
    第四十七讲 ASP.NET实例编程(六)
    第四十四讲 ASP.NET实例编程(三)
    第四十一讲 ASP.NET消息处理(二)
    第四十三讲 ASP.NET实例编程(二)
    第四十二讲 ASP.NET实例编程(一)
    第四十六讲 ASP.NET实例编程(五)
    第四十八讲 ASP.NET实战编程(一)
    第四十讲 ASP.NET消息处理(一)
    第四十五讲 ASP.NET实例编程(四)
    第三十九 ASP.NET编码
  • 原文地址:https://www.cnblogs.com/wuxiaoxia/p/6439204.html
Copyright © 2011-2022 走看看