Selenium基本使用(三)元素判断

一、由于有些页面加载完后,某些元素还没有加载,这样就会导致异常,脚本稳定性变差

为了解决这个问题,selenium提供了WebDriverWait以及两种方法进行判读:

显示判断和隐式判断

显示expected_conditions类,提供预期条件判断:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ex

WebDriverWait(driver,5,0.5).until(ex.presence_of_element_located((By.ID,"kw")))

‘‘‘
WebDriverWait(driver,timeout,poll_frequency)在单位时间内,检测元素是否存在。返回bool型
:parameter
driver 驱动
timeout等待时间
poll_frequency检测时间间隔
-------------------------------------------------------------------
一般WebDriverWait配合until和until_not使用
在单位时间内,until直到返回True,until_not相返
WebDriverWait(driver,timeout,poll_frequency).unitl(ex.presence_of_element_located((By.ID,"kw")))
需要使用到的包:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ex
from selenium.webdriver.common.by import By
-------------------------------------
presence_of_element_located是判断元素是否存在
ex下还有很多的方法供使用,例如,判断复选是否是勾选等
*****************************************************************
使用时需要注意事项:ex.presence_of_element_located((By.ID,"kw"))
这个方法,要有两个括号,因为参数只能是一个元组
‘‘‘
ex.element_located_selection_state_to_be((By.ID,"kw")) #元素的选中状态是否符合预期
ex.element_selection_state_to_be(element) #与上一个用法相同,区别在于一个参数是定位,一个是定位后的元素
ex.alert_is_present() #判断页面上,是否存在Alert弹出框
ex.element_located_to_be_selected((By.ID,"kw")) #某个预期元素是否被选中
ex.element_to_be_selected(element) #与上一个用法相同,区别在于一个参数是定位,一个是定位后的元素
ex.element_to_be_clickable() #判断元素是否可见并且可以点击

ex.frame_to_be_available_and_switch_to_it() #判断该表单是否,可以切换进去,可以返回True,并且Switch进去,否则返回False
ex.invisibility_of_element_located() #判断某元素是否存在于Dom树或不可见
ex.new_window_is_opened() #是否有窗口被打开
ex.presence_of_all_elements_located()
ex.presence_of_element_located() #判读元素是否存在
ex.text_to_be_present_in_element() #判读元素中的Text是否包含了预期字符串
ex.text_to_be_present_in_element_value#判断元素的Value是否包含了预期字符串
ex.title_contains(title) #判读当前页面,标题是否包含预期字符串
ex.title_is(title) #判读当前页面,标题是否为预期

ex.visibility_of_all_elements_located()
ex.visibility_of_element_located((By.ID,"kw")) #判断某元素是否可见
ex.visibility_of(element) #与上个用法相同,区别在于参数是定位后的元素,上一个是传的定位
ex.visibility_of_any_elements_located((By.CLASS_NAME,"a#")) #判断是否至少有一个元素在页面中可见,如果定位到就返回列表

is_displayed()元素定位下有这个方法,也可以判断元素是否可见

时间: 2024-08-27 00:34:17

Selenium基本使用(三)元素判断的相关文章

Selenium webdriver 学习总结-元素定位

Selenium webdriver 学习总结-元素定位 webdriver提供了丰富的API,有多种定位策略:id,name,css选择器,xpath等,其中css选择器定位元素效率相比xpath要高些,使用id,name属性定位元素是最可靠,效率最高的一种办法. 1.工具选择:在我们开发测试脚本的过程中各个浏览器给我们也提供了方便定位元素的工具,我比较喜欢使用firefox的firebug工具,也是目前很多开发测试人员比较热衷的选择,原因是firefox是唯一能够集成selenium IDE

Selenium(一)元素定位的方法

在Selenium中定位元素有七种方法: 1. identifier定位 这是最普遍的一种定位方式,在Selenium中默认为identifier定位,在这种策略下,第一个使用id的页面元素将被识别出来,如果没有使用指定id的元素,那么将识别第一个名字与指定条件相符的元素.例如:identifier=Continue  //定位页面元素为Continue因为identifier定位是默认方式,因此"identifier=" 可以不写. 2. id定位(最常用) 这种定位方式比ident

(java)selenium webdriver学习---三种等待时间方法:显式等待,隐式等待,强制等待

selenium webdriver学习---三种等待时间方法:显式等待,隐式等待,强制等待 本例包括窗口最大化,刷新,切换到指定窗口,后退,前进,获取当前窗口url等操作: import java.util.Set;import java.util.concurrent.TimeUnit; import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.openqa.selenium.By;import org.openqa.

RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下)

本文紧接着RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)继续分享RobotFramework中如何使用Selenium进行自动化测试. 本文章节目录: 1.Get Value 2.Get Webelements和Get Webelement 3.Get Window Titles 4.Go Back 和 Go To 5.Get List Items 6.Get Selected List

3、三个判断-三个循环

一.三个判断 // 第一种:if else,if,else, // 第二种:三元运算符(三目运算符) // 应用于简单的if else判断 // 第三种:switch case // 应用于不同值情况的判断 // if(条件1){ // 条件1成立执行的代码 // }else if( 条件2){ // 条件2成立执行的代码 // }else if( 条件3){ // 条件3成立执行的代码 // }else{ // 以上都不成立执行的代码 // }; //// if条件语句中可以有> < >

Selenium自动化测试Python三:WebDriver进阶

WebDriver 进阶 欢迎阅读WebDriver进阶讲义.本篇讲义将会重点介绍Selenium WebDriver API的重点使用方法,以及使用模块化和参数化进行自动化测试的设计. WebDriver API 进阶使用 元素定位 从之前的讲义和学习中,我们知道,WebDriver API的调用以及自动化测试,务必从页面元素的定位开始,那么回顾之前的内容,WebDriver提供了一系列的定位符以便使用元素定位方法.常见的定位符有以下几种: id name class name tag lin

1.2列表显示的三元素:数据、视图、适配器

一.列表显示的三元素:数据.视图.适配器 1.ListView这个组件用于显示: 2.适配器用于绑定数据,即将数据映射到ListView上: 3.数据需映射到ListView的数据可以是字符串.图片或者基本的组件. 二.一般R文件报错,有很大的可能是layout的布局文件出错,记得保存后在build-clean project中clean一下,恢复文件. 三:适配器的类型: 1.ArrayAdapter  只能显示一行字. 2.SimpleAdapter 有最好的扩充性,可以定义出各种各样的布局

银行卡三元素实名认证

银行卡三元素实名认证  银行卡实名认证,通过HTTP请求,发送持卡人姓名.银行卡号.身份证号码参数,返回信息是否一致,以及银行卡相关信息. http://www.haoservice.com/docs/82   请求参数:   名称 类型 必填 说明   key string 是 API KEY   idCardCode String 是 身份证号码   name String 是 持卡人姓名   accountNo String 是 银行卡帐号   返回字段:   名称 类型 说明   res

第三章 判断和循环

选择语句 else总是属于前面最近的还没有对应else的if switch格式 switch (choice) { case choice1:...; break; case choice2:...; break; ... default: } 可以不要default那么如果不匹配默认不执行break如果没有则默认一直往下执行如果在casse中创建变量那么必须用{}把case语句括起来可以case 1: case 2:这样共享case1和case 2的动作 循环语句 无穷循环 for(;;) 空