zoukankan      html  css  js  c++  java
  • selenium学习笔记09-三种等待方式及17种等待条件

    selenium三种等待方式

    time.sleep(固定等待)

    在开发自动化框架的过程中,最忌讳使用python自带模块time的sleep方式进行等待,虽然可以自定义等待时间,但当网络良好时,依旧按照预设定的时间继续等待,导致整个项目的自动化时间无限延长,不建议使用(注:脚本调试过程中,还是可以方便使用的)

    implicitly_wait(隐式等待)

    隐式等待实际是设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步。这样的隐式等待会有个坑,JavaScript一般都是放在我们的body的最后进行加载,实际这是页面上的元素都已经加载完毕,我们确还在等待全部页面加载结束。

    隐式等待对整个driver周期都起作用,在最开始设置一次就可以了。

    WebDriverWait(显示等待)

    WebDriverWait是selenium提供得到显示等待模块引入路径:

    from selenium.webdriver.support.wait import WebDriverWait

    代码如下:

    from selenium import webdriver
    from time import sleep
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.wait import WebDriverWait
    
    
    class TestCase(object):
        def __init__(self):
            self.driver = webdriver.Chrome()
            self.driver.get('http://www.baidu.com')
            # sleep(2)
    
        def test_sleep(self):
            self.driver.find_element_by_id('kw').send_keys('selenium')
            # sleep(2) # 线程阻塞 blocking wait
            self.driver.find_element_by_id('su').click()
            # sleep(3)
            self.driver.quit()
    
        def test_implicitly(self):
            self.driver.implicitly_wait(10)
            self.driver.find_element_by_id('kw').send_keys('selenium')
            # sleep(2) # 线程阻塞 blocking wait
            self.driver.find_element_by_id('su').click()
            # sleep(3)
            self.driver.quit()
    
        def test_wait(self):
            wait = WebDriverWait(self.driver,2)
            wait.until(EC.title_is('百度一下,你就知道'))
            self.driver.find_element_by_id('kw').send_keys('selenium')
            # sleep(2) # 线程阻塞 blocking wait
            self.driver.find_element_by_id('su').click()
            # sleep(3)
            self.driver.quit()
    
    if __name__ == '__main__':
        case = TestCase()
        # case.test_sleep()
        # case.test_implicitly()
        case.test_wait()

     

  • 相关阅读:
    Red hat 5挂载U盘
    Win7+VMware Workstation环境下的CentOS-Linux网络连接设置
    rand()随机数的产生
    phpmyadmin数据库导入出错
    dede忽略错误
    wamp
    网页地图map
    Redefining already defined constructor
    SCREAM:Error suppression ignored for
    Python+selenium之疑难点解决之去除readonly的限制
  • 原文地址:https://www.cnblogs.com/yronl/p/14450859.html
Copyright © 2011-2022 走看看