python 中的三种等待方式

为什么要用等待时间:

  1. 今天在写App的自动化的脚本时发现一个元素,但是往往执行脚本是报错( An element could not be located on the page using the given search parameters.),提示没有找到元素这时就可能出现时而能点击,时而又不能点击到,原因是:因为元素还没有被加载出来,查找的代码就已经被执行了,自然就找不到元素了.解决方式:可以用等待,等元素加载完成后再执行查找元素语句。

Python里有三种等待的方式:

1、强制等待

导入定时等待库 

from time import sleep 或者 import time

time.sleep(10)            # 表示强行等待10s在执行下一句代码 这种等待方式时间到了就会执行下个语句,但比较死板,不能保证在等待的时间内元素真正被加载了出来。而且如果等待的元素已经被加载出来,还需要等待到时间才会执行下一句,浪费时间。

2、 隐性等待

  1. driver.implicitly_wait(30)   #等待30s
  2. 这个等待表示在规定的时间内页面的所有元素都加载完了就执行下一步,否则一直等到时间截止,然后再继续下一步。
  3. 这个方法的缺点是你需要的元素已经加载出来了,但页面还没有加载完,再需要继续等待页面加载完才能执行下一步操作。

3、显性等待

需要导入的包

from selenium.webdriver.support.wait import WebDriverWait #导入显性等待的包

  from selenium.webdriver.support import expected_conditions as EC #判断所需要的元素是否已经被加载出来  

 from selenium.webdriver.common.by import By #定位

 

 

  1. WebDriverWait,配合该类的until()和until_not()方法,表示程序每隔x秒去判断一下指定的元素是否加载完,加载完了就执行下一步,否则继续每隔x秒去判断,指定时间截止。如果超时就会抛出异常。
  2. until()和until_not()方法

                    until()   判断,直到返回值为true,执行下一步

                    nutil_not    判断,直到返回值为false    执行下一步

如下 

  

  1. WebDriverWait(driver, 30, 0.5).until(EC.presence_of_element_located((By.ID, 'com.hanshow.wisepick:id/activity_login_btn')))
        #在30s内,每隔0.5s检查一次所需要的元素是否被加载出来,加载出来了就执行下一步,没有加载出来就继续等待,
    driver.find_element_by_id("com.hanshow.wisepick:id/activity_login_btn").click()  #执行找到的元素

 

 

Python是一种高级编程语言,它具有简单易学、可读性强和功能强大等特点。以下是Python的一些特点和用途: 1. 简单易学:Python语法简洁清晰,易于理解和学习,适合初学者入门。 2. 高级语言:Python供了许多高级特性,如动态类型、垃圾回收等,使开发者能够更专注于问题的解决而不是底层细节。 3. 开源和跨平台:Python是开源的,可以在多个操作系统上运行,如Windows、Linux和Mac OS等。 4. 大量的库和框架:Python拥有丰富的标准库和第三方库,可以满足各种需求,如数据分析、Web开发、机器学习等。 5. 面向对象:Python支持面向对象编程,可以使用类和对象来组织代码,提高代码的可重用性和可维护性。 6. 动态类型:Python是一种动态类型语言,变量的类型在运行时确定,不需要显式声明类型。 7. 脚本语言:Python可以作为脚本语言使用,可以快速编写和执行脚本,方便进行自动化任务。 8. 科学计算和数据分析:Python在科学计算和数据分析领域有广泛的应用,如NumPy、Pandas和Matplotlib等库提供了丰富的功能。 9. Web开发:Python有多个流行的Web框架,如Django和Flask,可以用于开发高效、可扩展的Web应用程序。 10. 人工智能和机器学习:Python在人工智能和机器学习领域得到广泛应用,如TensorFlow和PyTorch等库提供了强大的机器学习功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丿微步

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值