• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python页面加载的等待方式总结

    1、显式等待

    它指定要查找的节点,然后指定一个最长的等待时间,如果规定时间内加载出来了这个节点,就返回查找的节点;如果规定时间内没有加载出该节点,就抛出超时异常。

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    broswer = webdriver.Chrome()
    broswer.get('https://www.jd.com/')
    wait = WebDriverWait(broswer, 20)
    input_q = wait.until(EC.presence_of_element_located((By.ID, 'key')))
    button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.button')))
    print(input_q, button)

    2、隐式等待

    当使用隐式等待执行测试的时候,如果Selenium没有在DOM中找到节点,将继续等待,超出设定时间后,则抛出找不到节点的异常。换句话说,当查找节点而节点并没有出现的时候,隐式等待将等待一段时间再查找DOM,默认时间是0,示例如下:

    from selenium import webdriver
    browser = webdriver.Chrome()
    browser.implicitly_wait(10)
    browser.get('https://www.jd.com/')
    input_q = browser.find_element_by_class_name('button')
    print(input_q)

    知识点扩展:

    Python里有三种等待的方式:

    1、强制等待

    导入定时等待库

    from time import sleep 或者 import time

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

    2、 隐性等待

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

    3、显性等待

    需要导入的包

    from selenium.webdriver.support.wait import WebDriverWait #导入显性等待的包
    
    from selenium.webdriver.support import expected_conditions as EC #判断所需要的元素是否已经被加载出来 
    
    from selenium.webdriver.common.by import By #定位
    

    到此这篇关于Python页面加载的等待方式总结的文章就介绍到这了,更多相关Python页面加载的等待方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • python3+selenium获取页面加载的所有静态资源文件链接操作
    • Python selenium页面加载慢超时的解决方案
    上一篇:Python Selenium操作Cookie的实例方法
    下一篇:Python使用Turtle模块绘制国旗的方法示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python页面加载的等待方式总结 Python,页面,加载,的,等待,