港服(Server.HK)Python教程:python中等待怎么表示

Python里有三种等待的方式: 一、 强制等待 Sleep(54)  这个方法在time模块,使用时通过fr…

Python里有三种等待的方式:

一、 强制等待

Sleep(54) 

这个方法在time模块,使用时通过from time import sleep导入

比如:

Sleep(10) #表示强行等待10s再执行下一句代码

Driver.find_element_by_xpath(“xxxxxx”)

这种等待方式时间到了就执行下个语句,但比较死板,不能保证在等待的时间内元素真正被加载了出来。

二、 隐性等待

Implicitly_wait(xxx)

这个等待表示在规定的时间内页面的所有元素都加载完了就执行下一步,否则一直等到时间截止,然后再继续下一步。

Driver=webdriver.Chrome()

Driver.implicitly_wait(10)#等待10s

Driver.get(“XXX”)

这个方法的缺点是你需要的元素已经加载出来了,但页面还没有加载完,再需要继续等待页面加载完才能执行下一步操作。

看看第三种方法,比较灵活

三、 显性等待

WebDriverWait,配合该类的until()和until_not()方法,表示程序每隔x秒去判断一下指定的元素是否加载完,加载完了就执行下一步,

否则继续每隔x秒去判断,指定时间截止。如果超时就会抛出异常。

from selenium import webdriver  
from selenium.webdriver.support.wait import WebDriverWait  
from selenium.webdriver.support import expected_conditions as EC  
from selenium.webdriver.common.by import By
locator=(By.XPATH,”xxxxxxx”)
d = webdriver.Chorme()
d.get(“http://www.sina.com”)
WebDriverWait(d,10,1).unitl(EC.presence_of_element_located(locator))
Print(“”XXX“”)

这里表示等待10s,每隔1s去检查一次元素是否出现,出现了就执行下一步,直到10s结束后还没有出现就会抛出异常。

推荐学习《Python教程》!

为您推荐

港服(Server.HK)Python教程:如何实现对Python中列表的排序?

对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sor...

港服(Server.HK)Python教程:python迭代器中的函数整理

1、可以连接迭代器的函数 chain:按顺序将多个迭代器连接成一个迭代器。 Cycle:重复迭代器的所有元素。 Tee:...

港服(Server.HK)Python教程:用Python举例实现逆波兰表达式

逆波兰表达式是编译原理中的一种基本表达式,利用Python语言也可以实现逆波兰表达式的输出,这里举例实践说明: 什么是逆...

Python 程序:检查给定字符串是否为回文

港服(Server.HK)Python教程: 用一个实例写一个 Python 程序来检查给定的字符串是不是回文。在 Py...

港服(Server.HK)Python教程:python3判断字典中key是否存在

今天来说一下如何判断字典中是否存在某个key,一般有两种通用做法,下面为大家来分别讲解一下: 第一种方法:使用自带函数实...
返回顶部