• webdriver--设置元素等待


    • sleep():脚本执行到某一位置时“睡一会”,再继续执行;参数的单位是s;sleep方法由python的time模块提供,有两种引入和使用方式
      import time
      time.sleep(5)
      
      from time import sleep
      sleep(5)

      在未了解隐式等待这些方式时,sleep方法是我一直用的,有时想看看页面执行到某个位置时的数据显示,或页面跳转后定位新页面的元素等情况,页面执行太快看不到或者定位不到元素,都是通过“睡一会”的方式再继续进行

    • implicitly_wait():隐式等待,通过一定的时长等待页面上某元素加载完成,若超出时长还未加载出来则抛出NoSuchElementException异常
    1. 设置的时间并不是一个固定的等待时间,不影响脚本执行速度;
    2. 当脚本执行到某个元素定位时,如果可以定位继续执行;
    3. 定位不到时以轮询方式不断判断元素是否定位到,只要时间内定位到就继续执行,不必再等待剩余时长
    4. 在超时后,抛出异常    
       1 driver.get("http://www.zgckxt.com/THome/PC_SelfLearn/Index?id=1056&type=1")
       2 driver.find_element_by_xpath(".//*[@id='form1']/div/div/div[3]/div/div[1]/div[2]/div[1]/div[2]/a[1]/i").click()
       3 print(driver.current_url)
       4 
       5 #time.sleep(3)
       6 driver.implicitly_wait(3)
       7 try:
       8      print(driver.find_element_by_css_selector("div.m-battit").text)
       9 except NoSuchElementException as e:
      10      print(e)
      11 
      12 print(driver.current_url)
    • 显式等待,有些复杂用起来,暂不做研究

    目前用起来sleep比较顺手,简单方便;隐式等待看起来处理机制更完美,更健全,也更灵活。在以后的尝试过程中两者灵活使用吧

  • 相关阅读:
    C语言II—作业03
    C语言II博客作业01
    学期总结
    第一次作业!
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    第三次作业!
  • 原文地址:https://www.cnblogs.com/minieye/p/5804838.html
Copyright © 2020-2023  润新知