Python selenium 延时的几种方法

摘要:
有几种方法可以解决页面加载速度慢的问题:1.显式等待WebDriverWait,结合该类的until()和until_not()方法可以灵活地等待1fromsenium importwebdriver2fromsening。webdriver。支持waitimportWebDriverWait34driver=webdriver。Firefox()5驱动程序。收到

解决网页加载缓慢的几种方法:

一、显性等待WebDriverWait,配合该类的until()和until_not()方法,就能够根据判断条件而进行灵活地等待

Python selenium 延时的几种方法第1张Python selenium 延时的几种方法第2张
1 from selenium import webdriver
2 from selenium.webdriver.support.wait import WebDriverWait
3 
4 driver = webdriver.Firefox()
5 driver.get("https://www.baidu.com/")
6 # 等待时长30秒,默认每0.5秒询问一次
7 WebDriverWait(driver, 30).until(lambda x: x.find_element_by_id("kw")).send_keys("sky")
8 # sel_count_info = WebDriverWait(driver, 30).until(lambda x: x.find_element_by_id("selCount")).text
Wait Until

WebDriverWait(driver, 超时时长, 调用频率, 忽略异常).until(可执行方法, 超时时返回的信息)

WebDriverWait(driver, 超时时长, 调用频率, 忽略异常).until_not(可执行方法, 超时时返回的信息)

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

二、强制等待 sleep(xx),不建议总用这种等待方式,太死板,严重影响程序执行速度

Python selenium 延时的几种方法第3张Python selenium 延时的几种方法第4张
1 from selenium import webdriver
2 from selenium.webdriver.support.wait import WebDriverWait
3 
4 driver = webdriver.Firefox()
5 driver.get("https://www.baidu.com/")
6 # 强制等待时长5秒
7 driver.find_element_by_id("kw").send_keys("sky")
Sleep

三、隐性等待implicitly_wait(xx),隐性等待对整个driver的周期都起作用,所以只要设置一次即可

Python selenium 延时的几种方法第5张Python selenium 延时的几种方法第6张
1 from selenium import webdriver  
2 
3 driver = webdriver.Firefox() 
4 # 隐性等待,最长等30秒 
5 driver.implicitly_wait(30)  
6 driver.get('https://huilansame.github.io') 
implicitly_wait

四、隐性显性并用

Python selenium 延时的几种方法第7张Python selenium 延时的几种方法第8张
 1 from selenium import webdriver  
 2 from selenium.webdriver.support.wait import WebDriverWait  
 3 from selenium.webdriver.support import expected_conditions as EC  
 4 from selenium.webdriver.common.by import By  
 5 driver = webdriver.Firefox()  
 6 driver.implicitly_wait(10) # 隐性等待和显性等待可以同时用,但要注意:等待的最长时间取两者之中的大者  
 7 driver.get('https://huilansame.github.io')  
 8 locator = (By.LINK_TEXT, 'CSDN')  
 9 try:  
10     WebDriverWait(driver, 20, 0.5).until(EC.presence_of_element_located(locator))  
11     print(driver.find_element_by_link_text('CSDN').get_attribute('href'))  
12 finally:  
13     driver.close()  
隐性显性同时使用

免责声明:文章转载自《Python selenium 延时的几种方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【转】 【新】Docker实战总结实现对第三方应用任意SO注入下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python基础-6 字典相关练习题

写代码:有如下字典按照要求实现每一个功能dict = {"k1":"v1","k2":"v2","k3":"v3"} 1、请循环遍历出所有的key 1 dict = {"k1":"v1","k2":"v2","k3":"v3"} 2 3 #1、请循环遍历出所有的key 4 for k in dict: 5 print(k) View Code...

(转)Python科学计算之Pandas详解,pythonpandas

https://www.cnblogs.com/linux-wangkun/p/5903380.html-------pandas 学习(1): pandas 数据结构之Series https://www.cnblogs.com/linux-wangkun/p/5903945.html-------pandas 学习(2): pandas 数据结构之Da...

Python—模块

Python—模块 一、模块模块,是用一堆代码实现了某个功能的代码集合,模块分为三种:自定义模块(自己定义)、内置模块(python自带)、开源模块导入模块(1)、导入一个py文件,解释器解释该py文件(2)、导入一个包,解释器解释该包下的 __init__.py 文件 #模块导入import modulefrom module.xx import xxf...

采用文件方式安装Python第三方库

由于Python某些第三方库仅提供源代码,通过pip下载文件后无法在Windows系统编译安装,会导致第三方库安装失败。为了解决这类第三方库的安装问题,美国加州大学尔湾分校提供了一个网页,帮助Python用户获得Windows可直接安装的第三方库文件。 1、下载网址https://www.lfd.uci.edu/~gohlke/pythonlibs 2、安...

python数据结构-数组/列表/栈/队列及实现

首先 我们要分清楚一些概念和他们之间的关系 数组(array)  表(list)  链表(linked list)  数组链表(array list)   队列(queue)  栈(stack) list列表 array数组 python中内置list数据结构 存放的数据类型可以不同。 但是有个缺点 list存放的是数据的索引也就是指针 这需要数据的原有...

日志回滚:python(日志分割)

日志回滚:python 什么是日志回滚? 答: 将日志信息输出到一个单一的文件中,随着应用程序的持续使用,该日志文件会越来越庞大,进而影响系统的性能。因此,有必要对日志文件按某种条件进行切分,要切分日志文件。 分割日志的触发条件:大小、日期,或者大小加上日期。 说是切分,实际上是,当一个日志文件达到触发条件后,对日志文件进行重命名,之后再新建原来名称的日志...