python等待响应的3中方法

1显示等待

类型:webdriverwait 

使用准备: 需要导入

        from selenium.webdriver.support.ui import WebDruverWait

      from selenium.webdriver.supportimport expected_conditions as EC

扩展:webdriverwait一般与expected_conditions模块结合起来应用

#login=WebDriverWait(browser, 10).until(lambda x : browser.find_element_by_xpath('//*[@id="sign_in"]'))

login=WebDriverWait(browser,10).until(EC.element_to_be_clickable((By.XPATH,'//*[@id="sign_in"]')))

login.click()  # 找到元素后点击

element_to_be_clickable   表示元素可见并且可操作

text_to_be_present_in_element    指定元素文本位置

visibility_of_element_located        判断元素是否可见


login=WebDriverWait(browser, 10,2).until(lambda x : browser.find_element_by_xpath('//*[@id="sign_in"]'))

每2秒检查一次

2.智能等待时间

browser.implicitly_wait(30)

browser.find_element_by_xpath('//*[@id="sign_in"]').click()


3.固定休眠时间


需要导入: import time

time.sleep(20)

browser.find_element_by_xpath('//*[@id="sign_in"]').click()



4.理解

WebDriverWait():显示等待,同样也是 webdirver 提供的方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常。默认检测频率为0.5s,默认抛出异常为:NoSuchElementException


implicitly_wait()不是休眠,而是设置超时时间,它的作用的全局的,也就是在一个脚本中只需要使用一次(作用范围是针对整个webdriver对象实例),在每次进行find_element时起作用,以IEDriverServer为例,implicitlyWait()会将一个超时的时间阀值传递给IEDriverServer,在findelement或者findelements的时候,首先去找web元素,如果没有找到,判断时间否超超过implicitlyWait()传递进来的阀值,如果没有超过,则再次找这个元素,直到找到元素或者时间超过最大阀值。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 离上一篇更新的博文应该过了挺久的了(python爬虫(上)–请求——关于旅游网站的酒店评论爬取(传参方法))...
    Mrhyden阅读 560评论 0 0
  • # Selenium # # 自动化测试工具,致辞多种浏览器 # 爬虫中主要用来解决JavaScript渲染的问题...
    拾柒丶_8257阅读 430评论 0 0
  • Selenium 视频地址: 链接:https://pan.baidu.com/s/1RJETygOxiT1t2c...
    小草_f57c阅读 489评论 0 0
  • PH快报是 Product X 项目下的一个媒体专栏,由一群产品爱好者自发编译来自Producthunt榜单上的产...
    Product_X阅读 14,904评论 2 12
  • 夜,从窗子里望出去是阴沉的天 城市是没有夜晚的。黑暗来临的时候,一盏盏不肯睡的灯火,把所有人的执念和孤独再次点亮并...
    陌上花开1122阅读 334评论 0 0

友情链接更多精彩内容