appium判断元素是否存在_Python+selenium自动化之判定元素是否存在
在测试过程中,我碰到过这类的问题,使用find_element却找不到某个元素而产生异常,这就需要在操作某个元素之前判定该元素是否存在,而selenium中没有判定元素是否存在的方法,或者判定相同的元素有几个,需要操作对象是第几个。但是,有人已经总结一些相关的方式方法,下面还是通过实例说明。
find_elements获取元素个数
如果确定查找的元素在网页中只有一个,那么完全可以用find_element(),但如果有多个满足要求的节点,用find_element()就只能得到第一个节点了,所以查找多个节点时,应该使用find_elements()更好。即使元素只有唯一的一个时,由于网络时延或者弹窗前后台切换导致操作该元素时,该元素不存在,就可以使用find_elements来判定元素个数是否不为零,再进行相关操作。Selenium中find_elements的方法如下,但是注意复数形式,别乱用。
Find_elements的方法很多,如果常用判定最好自己写一个函数,方便调用,通常选择CSS或xpath。返回0则页面没有这个元素,返回1则仅有1个元素,其它返回则说明有多个该元素。
还是以企业邮箱为例,企业邮箱默认使用二维码方式登录,但是想要使用账户密码登录,就需要判定“账户密码登录”元素是否存在,我们可以使用 Ranorex Selocity直接复制该元素的xpath。
但是这类有一个确定,就是当页面存在多个同样的元素时,也是返回true,可能需要操作的并不是第一个。
捕获异常
捕获异常是使用find_element方法无法获取元素则会抛出异常,如果找到元素则会返回True。
# -*- coding: UTF-8 -*-from selenium import webdriver
driver = webdriver.Firefox()
driver.implicitly_wait(20)
# 打开腾讯企业邮箱
driver.get("https://exmail.qq.com/login")
#判定元素是否存在def test_elements_judge(xpath):
test_element = driver.find_elements_by_xpath(xpath)
if len(test_element) == 1:
return True
else:
return False
#捕获异常
def test_exceptions(xpath):
try:
driver.find_element_by_xpath(xpath)
return True
except:
return False
if test_exceptions("//form[@id='loginForm']"
"/div[3]/div[@class='login_scan_footer']/a[1]"):
driver.find_element_by_xpath("//form[@id='loginForm']" "/div[3]/div[@class='"
"login_scan_footer']/a[1]").click()
appium判断元素是否存在_Python+selenium自动化之判定元素是否存在相关推荐
- 怎么用python自动注册_python selenium自动化(二)自动化注册流程
需求:使用python selenium来自动测试一个网站注册的流程. 假设这个网站的注册流程分为三步,需要提供比较多的信息: 在这个流程里面,需要用户填入信息.在下拉菜单中选择.选择单选的radio ...
- python自动化测试web页面组成_python+selenium自动化软件测试(第3章):unittest
3.1 unittest简介 前言 (python基础比较弱的,建议大家多花点时间把基础语法学好,这里有套视频,可以照着练习下:http://pan.baidu.com/s/1i44jZdb 密码:9 ...
- python自动化流程概念_python selenium 自动化流程的一些总结与思考
首先要考虑的项目为什么要做自动化测试?(主要从自动化测试的优点着手) 其次是什么项目才适合做自动化测试? 自动化测试覆盖率要达到什么样的程度?因为都知道不可能达到100%的,不然脚本太臃肿,反而会失去 ...
- python 自动点击网页上按钮_python selenium自动化(一)点击页面链接测试
需求:现在有一个网站的页面,我希望用python自动化的测试点击这个页面上所有的在本窗口跳转,并且是本站内的链接,前往到链接页面之后在通过后退返回到原始页面. 要完成这个需求就必须实现3点: 1. 找 ...
- android select下拉列表_Python+selenium自动化之下拉列表操作(一)
下拉列表操作中分为两种:select.非select 非select下拉列表操作 非select下拉列表的操作与其他元素的操作一致,定位元素,设置等待,操作元素. 下面还是以腾讯邮箱为例,查看一封邮件 ...
- java自动化分页_Python+Selenium自动化实现分页(pagination)处理
selenium怎么应对网页分页的情况 什么是分页?是指frame么?selenium有处理frame的机制.driver.switchTo().frame("frame name" ...
- dnf自动刷图python脚本_python+selenium自动化登录dnf11周年活动界面领取奖励登录部分采坑总结[1]...
背景: Dnf的周年庆活动之一,游戏在6月22日 06:00~6月23日 06:00之间登陆过游戏后可以于6月25日 16:00~7月04日 06:00领取奖励 目标:连续四天自动运行脚本,自动领取所 ...
- python自动化控制运动_Python +selenium自动化帮你预订运动场地
导语 炎热的夏天,正是换上短裤短裙晒身材的时候.但是,身材不好怎么办?运动是一个选择,特别是像我们程序员行业,天天坐在空调办公室,更应该出出汗,正所谓:冬练三九,夏练三伏. 下班后,约上公司的妹子,打 ...
- js等待5秒后执行_Python+selenium自动化之等待
Selenium学习和使用过程中,比较常见的一个问题就是,弹窗定位不到.元素定位不到等,除了页面有frame.多窗口,就是没有加等待.代码运行的速度远远高于浏览器加载的速度,就像双人跑步运动,一个人快 ...
最新文章
- 如何正确选择聚类算法? | CSDN博文精选
- VScode 乱装插件环境破坏踩坑自我反思总结
- arduino向串口发送数据时掉包_[技术]清楚简单,一种串口触摸屏的开发流程和方法介绍...
- IOS登陆+注册+抽奖+排行榜
- 微信小程序 推送模板教程 附源码
- 以太坊智能合约Java_以太坊:调用已部署的智能合约
- 《设计模式详解》创建型模式 - 建造者模式
- L2-029 特立独行的幸福 (25 分)-PAT 团体程序设计天梯赛 GPLT
- C盘清理工具Dism++教程
- T分布和T检验的理解,Python代码实现T检验的计算
- uni-app 颜色选择器(插件分享)
- 三层交换机和vrrp协议
- codeforces A. Statues
- IBM PureApplication System如何使用DNS将工作负载部署到数据中心的网络上
- R语言入门(1)时间序列分析
- USB音频编解码芯片电路方案设计(原理图)|TYPEC音频方案|TYPEC扩展坞方案|USB音频方案
- 监听器和简单邮件发送
- 助力新冠抗原检测产品规模化、智能化生产,慧灵科技推出整体解决方案
- python数据分析与应用第四章课后实训答案_应用回归分析,第4章课后习题参考答案...
- java 程序员 基石