自动化测试之元素操作
来源:互联网 发布:软件项目生命周期管理 编辑:程序博客网 时间:2024/05/22 23:07
当定位好页面元素后,在自动化测试中就需要对该元素进行操作。在selenium中已经定义了不少方法,常用的如:click、tag_name、attribute、text、send_keys、clear、enabled?、displayed?、submit、location等等。通过字面也能理解该方法的作用,查看selenium的源码也能通过注释知道作用:
# Get the text content of this element # # @return [String] # def text bridge.getElementText @id end
element.text 就可以得到该元素的值,同理element.click 就是点击该元素。这样直接使用selenium的方法就可以完成对元素的操作,从而完成测试步骤和元素检查的工作。但是在实际工作中不建议这样直接使用selenium方法。我们要将这些方法重新封装到我们的测试框架中,在之前的文章《元素组织》中我们讲到了ElementBase元素基类,该类中有一个exist?方法,该方法就是封装了selenium的displayed?方法来判断元素是否存在。同样的我们继续在基类中定义更多的元素操作方法。
class ElementBase ....... def click() if exist? @@element.click end end # 如果要检查页面是否显示某个信息,这个方法很实用 def get_text if exist? @@element.text end endend
按照上面的方式将selenium的元素操作方法封装到我们自定义的ElementBase类中。一般我们还会对操作进行分类,比如大部分元素都适用的方法我们放到ElementBase类中,但对一些特别元素才适用的我们会派生出子类来定义,比如send_keys方法只有input元素才会用到,于是单独定义一个input类,该类又继承于ElementBase类。
class TextInput < ElementBase def input(string_text) @@element.send_keys string_text endend
这样在定义一个输入框元素的时候继承于TextInput,并在构造函数实例化TextInput类。在case中使用该输入框的时候实例化该输入框,就可以调用input方法来输入值。
module AdminLogin class TxtUserName < TextInput def initialize TextInput.new("xpath","//@name=uname","TxtUserName") end endendAdminLogin::TxtUserName.new.input userName
- 自动化测试之元素操作
- 自动化测试之元素定位
- 自动化测试之定位元素报错
- 自动化测试之页面元素组织
- Selenium2+Python2.0自动化测试【4】 元素基本操作
- selenium+java自动化测试框架之元素管理篇
- appium 自动化测试之知乎Android客户端-识别元素
- Selenium自动化测试之Xpath网页元素定位
- Robot Framework自动化测试-元素定位之id、name
- Robot Framework自动化测试-元素定位之xpath
- Robot Framework自动化测试-元素定位之css
- 自动化测试操作文档
- web自动化测试第3步:元素的基础操作和浏览器基础操作
- Windows Mobile自动化测试之模拟用户操作
- 自动化测试中不同uid 之UI touch操作
- android自动化测试之JavaMonkey跨APP操作
- 自动化测试:自动化测试 之 “好用例、坏用例”
- Holmos自动化测试入门学习(九)------用新开浏览器方式后页面元素的操作
- Socket编程
- Linux用户忘记root密码怎么办?
- webpack 入门
- 7.7用穷举法来调用函数
- object references an unsaved transient instance
- 自动化测试之元素操作
- 样式表的优先级
- 抽象方法、final的应用
- 全功能的屏幕截图工具
- IO复用(select)代码实现
- 带你逐步深入了解SSH框架——hibernate配置一对多和多对多
- xml文件--DOM4J写xml文件
- 51Nod 1095 Anigram单词 map
- 【修复世界观】之 C++的delete以及operator delete重载。