zoukankan      html  css  js  c++  java
  • Selenium 延时等待

    在 Selenium 中, get() 方法会在网页框架加载结束后结束执行,此时如果获取 page_source ,可能并不是浏览器完全加载完成的页面;

    如果某些页面有额外的 Ajax 请求,我们在网页源代码中也不一定能成功获取到。所以,这里需要延时等待一定时间,确保节点已经加载出来;

    我们可以指定一个最长等待时间。如果在规定时间内加载出来了这个节点,就返回查找的节点;如果到了规定时间依然没有加载出该节点,则抛阳超时异常。

    更多等待条件,参考官网:https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.support.expected_conditions

    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
    
    browser = webdriver.Chrome()
    browser.get("https://www.baidu.com/")
    wait = WebDriverWait(browser, 10)                                         # 创建一个WebDriver实例,并指定超时时间
    
    search_box = wait.until(EC.presence_of_element_located((By.ID, 'kw')))    # 调用 until() 方法,传入要等待的条件,until 表示一直等待,直到找到这个条件
    search_box.send_keys("Python")                                            # presence_of_element_located()是等待的条件,表示是否存在指定的元素
    
    button = wait.until(EC.element_to_be_clickable((By.ID, 'su')))            # element_to_be_clickable()是等待的条件,表示指定的元素是否可以点击
    button.click()

         

  • 相关阅读:
    mysql导入报错: Incorrect string value: 'xF0xA0x83x8CxE5x8D...' for column 'q_title' at row 4
    spring原理解析
    php连接mysql报错The server requested authentication method unknown to the client
    springmvc快速入门
    set集合
    Linux安装MySQL5.7
    Java中jar包获取资源文件的方式
    ⚡王道数据结构绪论⚡
    ❤️排序❤️
    😊考研线代知识点汇总😊
  • 原文地址:https://www.cnblogs.com/pzk7788/p/10550611.html
Copyright © 2011-2022 走看看