设置元素等待.py

from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECdriver = webdriver.Chrome()driver.get("http://www.baidu.com")

element = WebDriverWait(driver,5,0.5).until(EC.presence_of_element_located((By.ID,"kw")))

element.send_keys("selenium")

#显示等待:WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)

driver  #浏览器驱动

timeout #最长超时时间,默认以秒为单位

poll_frequency  #检测的间隔(步长)时间,默认为0.5S

ignored_exceptions  #超时后的异常信息,默认情况下抛NoSuchElementException异常。

WebDriverWait() #一般由until或until_not()方法配合使用

until(method,message=‘‘)# 调用该方法提供的驱动程序作为一个参数,直到返回值为True。

until_not(method,message = ‘‘)# 调用该方法提供的驱动程序作为一个参数,直到返回值为False。

#expected_conditions类提供的预期条件判断的方法

title_is                                #判断当前页面的标题是否等于预期

title_contains                          #判断当前页面的标题是否包含预期字符串

presence_of_element_located             #判断元素是否被加在DOM树里,并不代表该元素一定可见

visibility_of_element_located           #判断元素是否可见(可见代表元素非隐藏,并且元素的宽和高都不等于0)

visibility_of                           # 与上一个方法作用相同,只是上一个方法参数为定位,该方法接收的参数为定位后的元素

presence_of_all_elements_located        #判断是否至少有一个元素存在于DOM树中。例如,在个页面中有n个元素的class为"wp",那么只要有一个存在就返回true

text_to_be_present_in_clement           #判断某个元素中的text是否包含了预期的字符串

text_to_be_present_in_element_value     #判断某个元素的value属性是否包含了预期的字符串

frame_to_be_available_and_switch_to_it  #判断该表单是否可以切换进去,如果可以,返回True并且switch进去,否则返回false

invisibility_of_element_located         #判断某个元素是否不存在于DOM树或不可见

element_to_be_clickable                 #判断元素是否可见并且是可以点击的

staleness_of                            #等到一个元素从DOM树中移除

element_to_be_selecte                   #判断某个元素是被选中,一般用在下拉列表

element_sclection_state_to_be           #判断某个元素的选中状态是否符合预期

element_located_selection_state_to_be   #与上一个方法作用相同,只是-上一个方法参数为定位后的元素,该方法要收的参数为定位

alert_is_presen                         #判断页面上是否存在alert

#隐式等待from selenium import webdriverfrom selenium.common.exceptions import NoSuchElementExceptionfrom time import ctimedriver = webdriver.Chrome()driver.implicitly_wait(10)driver.get("http://www.baidu.com")try:    print(ctime())    driver.find_element_by_id("kw22").send_keys("selenium")except NoSuchElementException as e:    print(e)finally:    print(ctime())    driver.quit()

原文地址:https://www.cnblogs.com/zhang-da/p/12210688.html

时间: 2024-10-24 03:36:16

设置元素等待.py的相关文章

Python +selenium之设置元素等待

当浏览器在加载页面时,页面上的元素可能并不是同时被加载完成,这给元素的定位增加了困难.如果因为在加载某个元素时延迟而造成ElementNotVisibleException 的情况出现,那么就会降低自动化脚本的稳定性,我们可以设置元素等待时间改善这种问题造成的不稳定性. WebDriver提供了两种类型的等待,显示等待和隐式等待  显示等待: 显示等待使WebDriver等待某个条件成立时继续执行,否者在达到最大时长事会抛出超时异常(TimeoutException)

selenium 设置元素等待

webdriver 有2种等待方式:显式等待和隐式等待 显式等待 定义:使webdriver等待某个条件成立时继续执行,否则达到最大时长时抛出异常 WebdriverWait类是由WebDriver 提供的等待方法.在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则会抛出异常. 格式如下: WebDriverWait(driver,timeout,poll_frequency = 0.5,ignored_exceptions = None) driver:浏览

selenim学习:设置元素等待

显示等待 显示等待使Webdriver等待某个条件成立时继续执行,否则在达到最大时长时抛出超时异常(TimeoutException) from selenium import webdriver from time import * from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support 

Selenium with Python 008 - WebDriver 元素等待

如今大多数Web应用程序使用Ajax技术,当浏览器在加载页面时,页面上的元素可能并不是同时被加载完成的,这给元素的定位增加了困难.如果因为在加载某个元素时延迟而造成ElementNotVisibleException的情况出现,那么就会降低自动化脚本的稳定性,我们可以通过设置元素等待改善这种问题造成的不稳定. WebDriver提供了两种类型的等待:含蓄等待和明确等待.明确等待作用于特定代码块,使得WebDriver等待某个条件成立时继续执行,否则在达到最大时长时抛出超时异常:而含蓄等待,属于全

元素等待

为什么要设置元素等待?当你的网络慢的时候,打开网页慢,网页都没完全打开,代码已经在执行了,但是没找到你定位的元素,此时python会报错.当你的浏览器或电脑反应慢,网页没完全打开,代码已经在执行了,但是没找到你定位的元素,此时python也会报错.由于代码执行很快,而由于各方面的原因导致python代码报错,所以才要设置元素等待.是根据你的网速或电脑的情况而定来设置等待时间,没有一成不变的设置,这个需要注意. 1.time.sleep() 强制等待 优点:代码简洁,不啰嗦.缺点:假如你设置sle

python如何实现元素等待

一.为什么要元素等待? 在UI自动化过程中,元素的出现受网络环境.设备性能等多种元素影响.因此,元素加载和脚本运行到该元素的时间不一致,会报错:元素无法定位. 简单举下例子:实际UI自动化测试中,点击一个登录控件需要启动一个新activity界面,或需要加载弹框,或请求网络加载数据成功后刷新页面,此时需要等待一段时间,新界面出现了才能继续执行UI操作,否则数据还在加载ing,脚本已开始执行新界面操作的代码,脚本就会报错. 二.元素等待的作用 设置元素等待,增强脚本的健壮性,提高执行效率: 本质是

WebDriver API——延时操作及元素等待

在自动化测试过程当中,受网络.测试设备等诸多因素的影响,我们经常需要在自动化测试脚本中添加一些延时来更好的定位元素来进行一系列的操作. 一般有这么几种方式: 1.implicitlyWait.识别对象时的超时时间.过了这个时间如果对象还没找到的话就会抛出NoSuchElement异常 2.setScriptTimeout.异步脚本的超时时间.webdriver 可以异步执行脚本,这个是设置异步执行脚本脚本返回结果的超时时间. 3.pageLoadTimeout.页面加载时的超时时间.因为webd

Python+Selenium笔记(十):元素等待机制

 (一) 前言 突然的资源受限或网络延迟,可能导致找不到目标元素,这时测试报告会显示测试失败.这时需要一种延时机制,来使脚本的运行速度与程序的响应速度相匹配,WebDriver为这种情况提供了隐式等待和显式等待两种机制. (二) 隐式等待 一旦设置隐式等待时间,就会作用于这个WebDriver实例的整个生命周期(对所有的元素查找都生效),设置隐式等待时间后,Webdriver会在一定时间内持续检测和搜寻DOM,以便于查找一个或多个不是立即加载成功并可用的元素.隐式等待的默认时间是0. WebDr

python selenium系列(四)元素等待

一 前言 在前面的selenium系列(二)元素定位方式和selenium系列(三)常用操作类型及方法两节中,已经介绍了web页面元素的识别定位.操作等技术,可能你会觉得掌握这两项技术就可以实施web自动化了,答案基本是这样的,毕竟元素定位和操作是核心技术.但是,在某些场景,脚本的运行并非预期那样,如,要操作的元素用常规方法无法识别.元素可以识别但在脚本运行时却未如期而至等.为了解决这些疑难杂症,接下来三节内容将会介绍处理这些问题的通用方法. 在本节,主要介绍元素等待的使用方法和场景,该方法是开