三、WebDriver定位元素
推荐使用的webdriver是firefox,因为他的firebug更能可以帮助定位页面元素使用
# create a new Firefox session
cls.driver = webdriver.Firefox()
1、通过id定位
可以通过find_element_by_id()方法来定位元素
#通过id定位
self.driver.find_element_by_id("hl").click()
self.driver.find_element_by_id("m1").click()
2、通过name定位
可以通过find_element_by_name()方法来定位元素
#通过name定位
self.driver.find_element_by_name("panel").click()
self.driver.find_element_by_name("find").click()
3、通过class定位
可以通过find_element_by_class_name()方法来定位元素
#通过class定位
self.driver.find_element_by_ class_name("panel panel-default").click()
self.driver.find_element_by_ class_name("panel-body").click()
4、通过tag定位
可以通过find_element_by_tag_name()方法来定位元素
#通过tag定位
self.driver.find_element_by_ tag_name("input").click()
self.driver.find_element_by_ tag_name("tag_name").click()
5、通过link定位
可以通过find_element_by_link_text()方法来定位元素
#link定位
self.driver.find_element_by_link_text("新闻").click()
self.driver.find_element_by_ link_text("贴吧").click()
6、通过XPath定位
可以通过find_element_by_xpath()方法来定位元素,其中包括绝对路径定位、元素属性定位、层级与属性结合定位、逻辑运算符定位
#绝对路径定位
self.driver.find_element_by_xpath("/div/div[2]/div/div/div[2]/div").clear()
#元素属性定位
self.assertEqual(self.driver.find_element_by_xpath("//div[@class='modal-content']//div[@class='modal-header']//div[@class='bootstrap-dialog-header']//div[@class='bootstrap-dialog-title']").text,u"插入链接")
#层级与属性结合定位
self.driver.find_element_by_xpath("//div[@class='editor-tool-bar']/div[2]/button").send_keys('C:\Users\Public\Pictures\Sample Pictures\Lighthouse.jpg')
#逻辑运算符定位
self.driver.find_element_by_xpath("//div[@class='form-group' and @id=’form’]//input[@id='ILD_linkText']").send_keys(u"贵金属主站")
7、通过CSS定位(略)
8、通过By定位(略)
总结Selenium自动化测试方法(三)WebDriver定位元素方法的更多相关文章
-
WebDriver定位元素方法
如果把页面上的元素看作人的话,在现实世界如何找到某人呢?方法有三: 一.通过人本身的属性,例如他的姓名,手机号,身份证号,性别,这些可区别他人的属性.在web页面上的元素也有这些属性,例如,id.na ...
-
总结Selenium自动化测试方法(一)自动化测试基础
总结Selenium自动化测试方法 一.自动化测试基础 1.什么样的项目适合自动化测试 ①任务测试明确,不会频繁变动 ②每日构建后的测试验证 ③比较频繁的回归测试 ④软件系统界面稳定.变动少 ⑤需要在 ...
-
selenium+python定位元素方法
定位元素方法 官网地址:http://selenium-python.readthedocs.org/locating-elements.html 这里有各种策略用于定位网页中的元素(l ...
-
Selenium Webdriver定位元素的几种方式
原文:http://www.cnblogs.com/tobecrazy/p/4570494.html 工作中使用到记录一下. 主要有: 上传 alter dialog prompt dialog co ...
-
python selenium自动化(三)Chrome Webdriver的兼容
当一个自动化测试被实现在一个浏览器之后,我们会希望我们的测试能够覆盖到尽量多的别的浏览器.通过跨平台的测试来保证我们的程序在多个浏览器下都能正常工作. 在安装了selenium之后,firefox w ...
-
selenium中的webdriver定位元素失败的常见原因
自动化测试中经常会出现无法定位元素的情况,报selenium.common.exceptions.NoSuchElementException错误 Frame/Iframe原因定位不到元素: 这个是最 ...
-
ui自动化之selenium操作(二)定位元素-简单操作
1. 将浏览器最大化 这里拿chrome举例,但是我在执行的时候一直报错,被坑了好久; 解决办法: 这是因为chromedriver是和chrome一一对应的,不兼容的版本就会报错: 所有chrome ...
-
WebDriver的定位元素方法
如果把页面上的元素看作人的话,在现实世界如何找到某人呢?方法有三: 一.通过人本身的属性,例如他的姓名,手机号,身份证号,性别,这些可区别他人的属性.在web页面上的元素也有这些属性,例如,id.na ...
-
解决Selenium弹出新页面无法定位元素问题(Unable to locate element)
Python 2.7 IDE Pycharm 5.0.3 环境细节详见Python+Selenium+PIL+Tesseract真正自动识别验证码进行一键登录 对于同一页面无法定位元素问题请见姊妹篇解 ...
随机推荐
-
HDU 1005 F(Contest #1)
题意: 已知f[1] = f[2] = 1,输入三个数a,b,n,求f[n] = (a*f[n-1]+b*f[n-2])%7的结果 分析: f[n-1]和f[n-2]最多为7种情况(0,1,2,3,4 ...
-
Android WebRTC 音视频开发总结(一)
本系列文章主要总结和分享WebRTC开发过程中的一些经验,转载请说明出处(博客园RTC.Blacker),更多交流与合作请看页面上方的子标题! 一.WebRTC是什么? 可能您还不知道WebRTC是什 ...
-
【Maven实战】传递性依赖的问题
在上一篇文章中我们已经介绍了依赖性,这次我们再来介绍下传递依赖的问题,首先我们还是在上篇文章基础之上进行编写. 1.上篇文章中已经建立了一个user-core的模块,现在首先再建立一个user-log ...
-
isinstance和issubclass、动态模块导入、异常处理
一.isinstance和issubclass isinstance:判断某个对象是否是某个类的实例,返回True或Flase issubclass:判断某个类是否是某个类的子类. 例如: class ...
-
C# — 调用dll出现试图加载不正确格式的程序问题
今天在调用百度dll包时,运行项目出现了如下警告: 修改:鼠标右击项目名称----选择属性----生成-----平台目标-----X64(由于我调用的是X64的dll包,所以这里选择X64,网上许多说 ...
-
git add.后回退 代码丢失
记录一次操作git丢失代码的过程: 写完代码后:git staus git add. git status 发现有一堆.class 文件不想提交,想着代码回退到add 之前,使用了 git log 开 ...
-
51单片机小项目电路TwoLed电路图
1.复位电路没有开关,不可控 在电容旁边并联一个开关和10k的电阻支路 2.晶振电路引用的外部晶振, 理论上XTAL2悬空,XTAL1接外部震荡信号 //ProjeceName:TwoLed //wr ...
-
STL::array
1,array(仅c++11支持) 固定大小的容器,不能进行扩展和缩小(vector 可以),预分配的大小只是一个参数,在编译时确定真正的大小. Iterator 有下面几种: begin: [ ) ...
-
[Shell] Shell 中的算术
Shell 脚本变量默认是作为字符串处理,而不是数字,这使得在 Shell 脚本做数学运算显得较为复杂.在保持脚本编程规范和更好的算术支持方便,Perl 和 Python 会是更好的选择.但是你仍然可 ...
-
java System.arrayCopy使用说明
java System.arrayCopy使用说明 java.lang.System.arraycopy() 方法复制指定的源数组的数组,在指定的位置开始,到目标数组的指定位置. 下面是 System ...