Selenium自行整理【二十二】

4.7.3、隐式等待方法

      WebDriver 提供了几种方法来等待元素。

   ●  implicitlyWait。识别对象时的超时时间。过了这个时间如果对象还没找到的话就会抛出NoSuchElement 异常。

   ●  setScriptTimeout。异步脚本的超时时间。WebDriver 可以异步执行脚本,这个是设置异步执行脚本脚本返回结果的超时时间。

   ●  pageLoadTimeout。页面加载时的超时时间。因为 WebDriver 会等页面加载完毕再进行后面的操作,所以如果页面超过设置时 间依然没有加载完成,那么 WebDriver 就会抛出异常。

 

 

4.7.4、sleep休眠方法

      sleep()方法。有时候我们希望脚本执行到某一位置时做固定时间的休眠,尤其是在脚本调试的过程中。那么可以使用 Thread.sleep()方法,该方法。

       try...catch Java 的异常处理。如上例在用到 sleep()方法的地方都要加上异常处理。相比之下用 throws关键字的写法更为便捷。

 

4.8、定位一组元素

        我们已经学习了 8 种定位方法,那 8 种定位方法是针对单个元素定位的,WebDriver 还提供了另外 8 种用于定位一组元素的方法。

       定位一组元素的方法与定位单个元素的方法类似,看出什么区别了吗?对,就是在单词 element 后面多了一个 s 表示复数,如果没发现的话,先去面壁思过一会儿去。

                                                            定位一组元素一般用于以下场景:

  1. 批量操作元素,例如勾选页面上所有的复选框
  2. 先获取一组元素,再从这组对象中过滤出需要操作的元素。例如定位出页面上所有的 checkbox,然后选择其中的一个进行操作。

手动创建一个checkbox.html的页面

手动创建的页面执行结果如下图所示

下面就通过例子来操作页面上的这一组复选框

         前面提到,通过 tag name 的定位方式很难定位到单个元素,因为元素标签名重复的概率很高。那么在定位一组元素时,这种方式就派上用场了。在上面的例子中先通过 findElements(By.className())找到一组标签名为input 的元素。然后通过 for 循环进行遍历,在遍历过程中,通过 getAttribute()方法获取元素的 type 属性是否为“checkbox”,如果为“checkbox”,那么就认为这个元素是一个复选框,对其进行勾选操作。

       需要注意的是,在上面的例子中,通过浏览器打开的是一个本地的 html 文件,所以需要用到 Java 的 File()方法本地路径下的文件。

      除此之外,我们还可以使用 XPath 或 CSS 来直接判断属性值,从而进行单击操作。

     通过 XPath 或 CSS 来查找一组元素时,省去了判断步骤。因为定位方法已经做了判断,只需循环对这一组元素进行勾选即可。

-------------------------------------------------------------------------------------------------------------------------------

这个方法用于刷新页面

-------------------------------------------------------------------------------------------------------------------------------

size() 方法可以计算获得元素的个数

这里获得的结果为 3。3 减 1 为 2。

-------------------------------------------------------------------------------------------------------------------------------

get() 指定得到元素组中的第几个元素,对其 click() 操作

-------------------------------------------------------------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值