python三种等待方式_python应用:web自动化之三大等待

Python是一种解释型脚本语言,可以应用于以下领域:

web和Internet开发

科学计算和统计

人工智能

教育

桌面界面开发

后端开发

网络爬虫

这个假期有些长,长到忘记了要学习,要找工作,好吧,在我每天无休止的追着偶像剧时,我确实没有负罪感,在听了小祥大佬的分享后,我连睡午觉都被吓醒。大佬跟我同一个班,在大厂工作,每天还抽时间学习,作业也没落下,看看自己,再对比下别人,终于明白,我拿不到高薪原来是有原因的,话不多说,从昨天开始我进入了web自动化的学习,今天整理了下三大等待方式,特此做个笔记吧,后续忘记了可以再review。

等待分为三种:

1.等待(俗称傻等) time.sleep(2)

这种等待就按照设定的时间,傻傻的等待,配合着第三种等待来使用

2.隐性等待 implicitly_wait(30)

放在开始与浏览器对话开始,对于当前页面来说,隐性的等待,超过了等待时间才会抛出异常

作用:1.等待元素被找到,2.等待命令执行完成

3.显式等待

所有条件都是明确指出来,等待条件存在之后,再进行后续的代码执行

等待:webdriverwait 条件:expected_condition

等待20秒 检测条件成立的间隔:默认是0.5秒

上段代码,就好理解了

from selenium import webdriver

from selenium.webdriver.common.by import By

import time

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

#开始与浏览器的会话

dr = webdriver.Chrome()

#当前页面,隐性等待30秒

dr.implicitly_wait(30)

dr.get('http://www.baidu.com')

#动作,点击登录链接

dr.maximize_window() #窗口最大化

time.sleep(2)

#查找元素,点击登录链接动作

loc = (By.XPATH,'//*[@id="u1"]//a[@name="tj_login"]')

dr.find_element(*loc).click()

time.sleep(3)

#等待xxx元素可见

#1.元素定位表达式

loc = (By.ID,'TANGRAM__PSP_10__footerULoginBtn')

#1.WebDriverWait(dr,20,1),第一个参数把当前的会话传给它,第二个参数是等待的最长时间,第三个参数是轮询时间为1s,默认是0.5秒。可以不用填写

#2.until(EC.visibility_of_element_located(loc))直到元素可见时就执行,参数为:loc元组,一般用元组不可变来表达

WebDriverWait(dr,20,1).until(EC.visibility_of_element_located(loc))

#查找登录账号的元素,做点击操作

dr.find_element(*loc).click()

time.sleep(2)

#结束会话

dr.quit()

那么什么时候需要等待?

元素操作之前,稳妥起见,都需要等一等

Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值