zoukankan      html  css  js  c++  java
  • 两个标签页定位第二个标签页元素时显示element not visible

    问题描述

    web页面有两个标签页, 当转换到第二个标签页定位元素时, 显示element not visible.

    代码

    1 ... //省略
    2 WebElement ele= browser.getElementFrom(browser.getElement("//*[@id="tab_index"]/div/div[2]/div[2]"), "//*[@id="selectContent"]/div[1]/div[1]/div[1]/div[2]/div/span/div/div");
    3 ... //省略

    根本原因

    因为有两个标签页, 所以当定位元素时用"//", 系统默认会从body最开始找起,这样找到的其实是第一个标签页中的元素,但此时第一个标签页是hidden状态, 所以会返回element not visible.

    解决办法

    办法1: 去掉//, 只引用相对路径. 并使用封装的getElementFrom()方法(告知系统从哪个div下面找起)而不是从最开始找起.

    办法2: 在//前面加点(.), 代表从当前div找起.

    代码:

     

    1     @Override
    2     public WebElement getElementFrom(WebElement from, String xpath)
    3     {
    4         return from.findElement(By.xpath(xpath));
    5     }
  • 相关阅读:
    Linux下安装Mysql
    mssql 查询效率
    查看apache是否安装及版本
    centos(linux)切换用户
    mysql操作命令(linux)
    远程连接MySql连不上1130
    JAVA环境配置
    SQLSERVER2012数据库还原
    ASP连接ACCESS数据库
    ODOO 常用widget
  • 原文地址:https://www.cnblogs.com/cheese320/p/8857219.html
Copyright © 2011-2022 走看看