zoukankan      html  css  js  c++  java
  • selenium在操作隐藏元素时会报错,怎么判断元素是隐藏的?

    首先页面元素隐藏有五种方法:

    1. opacity: 0;

      opacity 属性的意思是设置一个元素的透明度。它不是为改变元素的边界框(bounding box)而设计的。这意味着将 opacity 设为 0 只能从视觉上隐藏元素。而元素本身依然占据它自己的位置并对网页的布局起作用。它也将响应用户交互。这样的组件用selenium是可以操作的,看 @SitePoint 提供的例子“用 opacity 隐藏元素”,但isdisplay是false的

    2. visibility: hidden;

      将它的值设为 hidden 将隐藏我们的元素。如同 opacity 属性,被隐藏的元素依然会对我们的网页布局起作用。与 opacity 唯一不同的是它不会响应任何用户交互,同样isdisplay是false的

    3. display: none;

      display 属性依照词义真正隐藏元素。将 display 属性设为 none 确保元素不可见并且连盒模型也不生成。使用这个属性,被隐藏的元素不占据任何空间。不仅如此,一旦 display 设为 none 任何对该元素直接打用户交互操作都不可能生效

    4. position: absolute;  top: -9999px;  left: -9999px;

    这种方法的主要原理是通过将元素的 top 和 left 设置成足够大的负数,使它在屏幕上不可见,selenium无法操作这样的元素

    5. clip-path: polygon(0px 0px,0px 0px,0px 0px,0px 0px);

      隐藏元素的另一种方法是通过剪裁它们来实现。在以前,这可以通过 clip 属性来实现,但是这个属性被废弃了,换成一个更好的属性叫做 clip-path。

      而以前的clip隐藏元素是 rect(0px, 0px, 0px, 0px)

    还有两种对应selenium来说也是隐藏的元素,无法操作

    1. height and width are both <0

    2. for an input, the attribute type = hidden

  • 相关阅读:
    [王爽汇编语言笔记]内存地址空间
    [zt]Tutorial: Make Vim as Your C/C++ IDE Using c.vim Plugin
    ubuntu下root 密码忘记的解决方法
    脱壳
    远程访问linux服务器
    【自己动手写操作系统学习笔记】1.hello world!
    不会溢出的除法
    javascript 数据类型和值(基础版)
    WebService 使用的简单例子
    SQL group by 和 having
  • 原文地址:https://www.cnblogs.com/tyrionyang/p/6932825.html
Copyright © 2011-2022 走看看