转:python webdriver API 之操作测试对象
一般来说,所有有趣的操作与页面交互都将通过 WebElement 接口,包括上一节中介绍的对象定位,
以及本节中需要介绍的常对象操作。
webdriver 中比较常用的操作元素的方法有下面几个:
clear 清除元素的内容,如果可以的话
send_keys 在元素上模拟按键输入
click 单击元素
submit 提交表单
3.1、登录实例
下面以快播私有云登录实例来展示常见元素操作的使用:
#coding=utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://passport.kuaibo.com/login/?referrer=http%3A%2F%2Fwebclou
d.kuaibo.com%2F")
driver.find_element_by_id("user_name").clear()
driver.find_element_by_id("user_name").send_keys("username")
driver.find_element_by_id("user_pwd").clear()
driver.find_element_by_id("user_pwd").send_keys("password")
driver.find_element_by_id("dl_an_submit").click()
#通过 submit() 来提交操作
#driver.find_element_by_id("dl_an_submit").submit()
driver.quit()
clear() 用于清除输入框的默认内容
比如登录框内一般默认会有“账号” “密码”等提示信息,如果直接输入内容,和可能会与输入框的
默认提示信息拼接,从而造成输入信息的错误;这时 clear()将变得非常有用。
send_keys("xx") 用于在一个输入框里输入 xx 内容
python 是个容易出现编码问题的语言,有时候当我们在 send_keys()方法中输入中文时,然后脚本在
运行时就报编码错误, 这个时候我们可以在脚本开头声明编码为 utf-8, 然后在中文字符的前面加个小 u 就
解决了(表示转成 python Unicode 编码) :
#coding=utf-8
send_keys(u"中文内容")
需要注意的是 utf-8并不是万能的,如果 utf-8不能解决,可以尝试将编码声明为 GBK;关于 python
的编码问题,请参考 python 相关书籍。
click() 用于单击一个按钮
其实 click()方法不仅仅用于点击一个按钮,可以单击任何可以点击的元素,文字/图片连接,按钮,
下拉按钮等。
submit() 提交表单
从上面有例子,我们可看到可以使用 submit()方法来代替 click()对输入的信息进行提交,在有些情
况下两个方法可以相互使用;submit()要求提交对象是一个表单,更强调对信息的提交。click()更强调
事件的独立性。 (比如,一个文字链接就不能用 submit()方法。 )
3.2 WebElement 接口常用方法
WebElement 接口除了我们前面介绍的方法外,它还包含了别一些有用的方法。下面,我们例举例几
个比较有用的方法。
size
返回元素的尺寸。例:
#返回百度输入狂的宽高
size=driver.find_element_by_id("kw").size
print size
text
获取元素的文本,例:
#返回百度页面底部备案信息
text=driver.find_element_by_id("cp").text
print text
get_attribute(name)
获得属性值。例:
#返回元素的属性值,可以是 id、name、type 或元素拥有的其它任意属性
attribute=driver.find_element_by_id("kw").get_attribute('type')
print attribute
需要说明的是这个方法在定位一组时将变得非常有用,后面将有运行的实例。
is_displayed()
设置该元素是否用户可见。例:
#返回元素的结果是否可见,返回结果为 True 或 False
result=driver.find_element_by_id("kw").is_displayed()
print result
WebElement 接口的其它更多方法请参考 webdriver API。
转:python webdriver API 之操作测试对象的更多相关文章
- 转:python webdriver API 之 获取对象的属性
获取测试对象的属性能够帮我们更好的进行对象的定位.比如页面上有很多标签为 input 元素,而我们需要定位其中 1 个有具有 data-node 属性不一样的元素.由于 webdriver 是不支持直 ...
- 转:python webdriver API 之简单对象的定位
对象(元素)的定位和操作是自动化测试的核心部分,其中操作又是建立在定位的基础上的,因此元素定位就显得非常重要. (本书中用到的对象与元素同为一个事物)一个对象就像是一个人,他会有各种的特征(属性) , ...
- python webdriver API学习笔记
浏览器操作 driver.maximize_window() #浏览器最大化 driver.set_window_size(480,800) #设置浏览器宽,高 driver.back() & ...
- 转:python webdriver API 之定位一组对象
webdriver 可以很方便的使用 find_element 方法来定位某个特定的对象,不过有时候我们却需要定位一组对象,WebElement 接口同样提供了定位一组元素的方法 find_eleme ...
- webdriver(python)学习笔记六——操作测试对象
定位到具体对象后,就需要对其进行操作,比如点击.输入内容等. 一般来说,webdriver中比较常用的操作对象的方法有下面几个 click 点击对象 send_keys 在对象上模拟按键输入 clea ...
- 转:python webdriver API 之定位 frame 中的对象
在 web 应用中经常会出现 frame 嵌套的应用,假设页面上有 A.B 两个 frame,其中 B 在 A 内,那么定位 B 中的内容则需要先到 A,然后再到 B.switch_to_frame ...
- 转:python webdriver API 之 验证码问题
对于 web 应用来说,大部分的系统在用户登录时都要求用户输入验证码,验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的,对于系统来说使用验证码可以有效果的防止采用机器猜测 ...
- 转:python webdriver API 之调用 JavaScript
当 webdriver 遇到没法完成的操作时,笔者可以考虑借用 JavaScript 来完成,比下下面的例子,通过 JavaScript 来隐藏页面上的元素.除了完成 webdriver 无法完成的操 ...
- 转:python webdriver API 之下载文件
webdriver 允许我们设置默认的文件下载路径.也就是说文件会自动下载并且存在设置的那个目录中.要想下载文件,首选要先确定你所要下载的文件的类型.要识别自动文件的下载类型可以使用 curl ,如图 ...
随机推荐
- 【No.2】监控Linux性能25个命令行工具
接着上一篇博文继续 [No.1]监控Linux性能25个命令行工具 10:mpstat -- 显示每个CPU的占用情况 该命令可以显示每个CPU的占用情况,如果有一个CPU占用率特别高,那么有可能是一 ...
- 智能手机,医疗诊断,云会议(gotomeeting/citrix)
在诊断领域已出现很多大有希望的创新,它们可能会起到真正的变革作用. 例如,有一种新技术可以让健康护理工作者用一部智能手机拍摄高质量的视网膜图像.这些数码照片像素很高,足以帮助检测白内障.黄斑退化.糖尿 ...
- Mongo中的数组操作
当前mongo中有这么一条数据 book是一个数组,在他后面添加一条数据 { "_id" : ObjectId("5721f504d1f70435632b5ce7&quo ...
- Qt的学习资料比起其它C/C++的GUI组件来说已经算很全的了
Qt的学习资料比起其它C/C++的GUI组件来说已经算很全的了.Google的话能解决很多问题,如果没搜到资料的话,如果不是问题太过具体或者奇葩,那就是搜索方法的问题.中文教程中,Qt学习之路系列很不 ...
- c# ToString() 用法
string tempa = Convert.ToString(31, 2);//将10进制数31转换为2进制字符串. string strNums = int.Parse(tempa).ToStri ...
- php--rbac权限
- php--group by
1. GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使用 group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by ...
- IOS证书的申请和使用
苹果的证书繁锁复杂,制作管理相当麻烦,今天决定重置一个游戏项目中的所有证书,做了这么多次还是感觉很纠结,索性直接记录下来,日后你我他查阅都方便: 关于证书 苹果使用密文签名技术来验证App的合法性,不 ...
- Linux: 20 Iptables Examples For New SysAdmins
Linux comes with a host based firewall called Netfilter. According to the official project site: net ...
- Chip Factory---hdu5536(异或值最大,01字典树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5536 题意:有一个数组a[], 包含n个数,从n个数中找到三个数使得 (a[i]+a[j])⊕a[k] ...