首页 > 其他分享 >聊聊三种等待的区别

聊聊三种等待的区别

时间:2024-06-30 23:10:00浏览次数:24  
标签:区别 元素 指定 三种 聊聊 显式 加载 等待 页面

1. 强制等待:sleep()

缺点:指定的时间过长,即使元素已经被加载出来了,但还是要是要继续等待,浪费时间。

 

2. 隐式等待:

缺点:可以把隐式等待当做全局变量,影响整个页面,程序需要等待整个页面加载完成才会执行下一步。但可能页面加载未完成时,需要定位的元素已经加载完成了,但受限于某些 JS 文件、图片加载特别慢,我们不能执行下一步,必须等到网页所有东西加载完后才能进行下一步。【增加不必要的加载时间】

 

3. 显式等待:

可以把显式等待看做是局部变量,作用域指定元素。

显示等待值只对指定元素生效,不再是在整个 WebDriver 生命周期生效。【对指定元素生效】

可以根据需要定位的元素来设置显式等待,无需等待页面完全加载,节省大量因加载无关紧要文件而浪费掉的时间。【针对元素设置,无需等待整个页面加载完成,节省加载时间】

element = WebDriverWait(driver, 10, 0.5).until(EC.presence_of_element_located((By.ID, 'kw')))

WebDriverWait(driver实例, 超时时长, 调用频率, 忽略的异常).until(要调用的 方法, 超时时返回的信息) 

 

标签:区别,元素,指定,三种,聊聊,显式,加载,等待,页面
From: https://www.cnblogs.com/xianyumaixianyu/p/18277132

相关文章

  • 494.力扣每日一题6/30 Java(三种解法)
    博客主页:音符犹如代码系列专栏:算法练习关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞......
  • ts Object object {} 的区别
    概论在TypeScript中,object类型是一个非原始类型的标志,表示任何不是number、string、boolean、symbol、null或undefined的值。因此,object类型本身不允许null或undefined的赋值。Object和{}类型等同,object是ts限定数组或者对象的类型。代码测试letffa:Object;letffa2:......
  • c语言malloc、calloc 和 realloc动态分配内存函数的区别
    c语言malloc、calloc和realloc动态分配内存函数的区别malloc、calloc和realloc是C语言中用于动态内存分配的三个重要函数,它们之间有一些关键的区别。以下是这三个函数的区别,以分点表示和归纳的形式进行解释:内存来源和初始化:malloc:在堆上分配指定大小的内存块,但不进行初始化......
  • 验证二叉搜索树 前序 中序 后序的三种解法 - 灵神视频总结
    这节课用三种方法来验证一颗二叉树是否是搜索树。递归的基础知识:看到递归就晕?带你理解递归的本质!--灵神视频总结-CSDN博客如何灵活运用递归?-灵神视频总结-CSDN博客98.验证二叉搜索树二叉搜索树的定义:给你一个二叉树的根节点root,判断其是否是一个有效的二叉搜索树......
  • Java中线程的run()和start()有什么区别?
    在Java中,run() 方法和 start() 方法在线程的使用中有重要区别:run() 方法:当您直接调用线程对象的 run() 方法时,它会在当前线程中执行 run() 方法中的代码,不会启动新的线程。这就相当于普通的方法调用,不会实现多线程的并发执行效果。start() 方法:调用线程对象的 ......
  • mybatis #{} 和 ${} 的区别
    在MyBatis中,#{}和${}是两种不同的参数处理方式,它们在SQL语句的动态生成和预编译语句的参数绑定中扮演着不同角色。#{}#{}主要用于预编译语句(PreparedStatement)的参数绑定,它具有以下几个特点:防止SQL注入:#{}能够自动进行字符串的转义,将特殊字符转为SQL字符串,从而......
  • HDLBits练习Shift18 Verilog逻辑右移和算数右移的区别
    算术右移时,移入的是移位寄存器中数字(本例中为q[63])的符号位,而不是逻辑右移时的零。右移n位,即加入n位符号位。即若符号位为1,在左边补1;若符号位为0,就补0。算术右移的另一种思路是,它假定被移位的数字是带符号的,并保留符号,因此算术右移是右移n位将带符号的数字除以2的n次幂。......
  • let和var的区别
    let 和 var 在JavaScript中都是用来声明变量的关键字,但它们在作用域、变量提升和重复声明方面有显著的区别:作用域:var:变量声明时,它被绑定到包含它的函数作用域。如果 var 在函数外部声明,它将是全局变量。let:变量声明时,它被绑定到包含它的块作用域(任何代码块,如 {} 内)。......
  • CSS三种样式
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><style>/*内部样式*//*css注释*/div{background:orange;}/*类选择器......
  • httpClient使用GetStringAsync、GetByteArrayAsync、GetStreamAsync三种方法的使用场
     `HttpClient`类中的`GetStringAsync`、`GetByteArrayAsync`和`GetStreamAsync`方法用于从远程服务器获取不同类型的数据。它们的主要使用场景如下:1.`GetStringAsync`方法:-使用场景:当您需要从远程服务器获取文本数据时,可以使用`GetStringAsync`方法。这通常用于......