您的当前位置:首页正文

python自动化框架selenium怎么用?

2024-08-01 来源:骅佗教育

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

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

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

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

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

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() **方法,或者用自己封装的方法都可以。

更多学习内容,点击查询