• 技术文章 >Python技术 >Python基础教程

    python自动化框架selenium怎么用?

    2020-11-09 14:51:11原创1823
    为小编讲述不少的内容,大家应该了解这个工具的重要意义了吧,之前也跟大家提及关于这个工具的安装内容,今日再给大家详细说下怎么去使用,利用最简单,最快捷的方式去使用,想必大家都迫不及待想要了解了吧~那就一起来看下吧~

    selenium三种等待方式

    有时候为了保证脚本运行的稳定性,需要脚本中添加等待时间。

    强制等待

    第一种也是最简单粗暴的一种办法就是强制等待sleep(xx),需要引入“time”模块,这种叫强制等待,不管你浏览器是否加载完了,程序都得等待3秒,3秒一到,继续执行下面的代码,作为调试很有用,有时候也可以在代码里这样等待,不过不建议总用这种等待方式,太死板,严重影响程序执行速度。

    # -*- coding: utf-8 -*-
    from selenium import webdriver
    import time
     
    driver = webdriver.Firefox()
    driver.get('http://baidu.com')
     
    time.sleep(3) # 强制等待3秒再执行下一步
     
    print(driver.current_url)
    driver.quit()

    隐性等待

    第二种办法叫隐性等待,通过添加 implicitly_wait() 方法就可以方便的实现智能等待;implicitly_wait(30) 的用法应该比 time.sleep() 更智能,后者只能选择一个固定的时间的等待,前者可以 在一个时间范围内智能的等待。

    # -*- coding: utf-8 -*-
    from selenium import webdriver
     
    driver = webdriver.Firefox()
    driver.implicitly_wait(30) # 隐性等待,最长等30秒
    driver.get('http://baidu.com')
     
    print(driver.current_url)
    driver.quit()

    显性等待

    Init

    l driver: 传入WebDriver实例,即我们上例中的driver

    l timeout: 超时时间,等待的最长时间(同时要考虑隐性等待时间)

    l poll_frequency: 调用until或until_not中的方法的间隔时间,默认是0.5秒

    l ignored_exceptions: 忽略的异常,如果在调用until或until_not的过程中抛出这个元组中的异常,则不中断代码,继续等待,如果抛出的是这个元组外的异常,则中断代码,抛出异常。默认只有NoSuchElementException。

    Until

    method: 在等待期间,每隔一段时间(__init__中的poll_frequency)调用这个传入的方法,直到返回值不是False

    message: 如果超时,抛出TimeoutException,将message传入异常

    until_not

    until相反,until是当某元素出现或什么条件成立则继续执行,

    until_not是当某元素消失或什么条件不成立则继续执行,参数也相同,不再赘述。

    在这里,你可以用selenium提供的 expected_conditions 模块中的各种条件,也可以用WebElement的 is_displayed() 、is_enabled()、**is_selected() **方法,或者用自己封装的方法都可以。

    更多学习内容,点击查询python学习网

    专题推荐:python自动化框架selenium怎么用
    上一篇:如何实现python接口自动化? 下一篇:如何使用python实现文本数据挖掘?

    相关文章推荐

    • 怎么使用python tkinter制作日历?• 如何实现python接口自动化?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网