Selenium

是一个Web应用程序的自动化测试工具。使用javaScript内核语言编写,几乎支持所有能运行javaScript的浏览器(包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等)。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。可使用Java,Python等多种语言编写用例脚本。

工作原理:

 Selenium 脚本是用多种受支持的编程语言中的一种编写的 —— 目前可用的有 Java、Ruby 和 Python 驱动程序。这些脚本在浏览器之外的一个单独的进程中运行。驱动程序的任务是执行测试脚本,并通过与运行在浏览器中的 browser bot 进行通信来驱动浏览器。驱动程序与 browser bot 之间的通信使用一种简单的特定于 Selenium 的连接语言 Selenese。

主要功能:

测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。

元素的定位:

A)id定位元素find_element_by_id("Element's id")

B)class_name定位元素find_element_by_class_name("class name")

C)tag定位元素find_element_by_tag_name(“tag_name”)

D)name属性定位元素find_element_by_name("Element's name")

针对链接<a>元素增加了两种定位方式

E)link_text通过a元素的文本内容匹配find_element_by_link_text("link name")

F)partial_link_text部分匹配find_element_by_partial_link_text("link name")

G)XPath是一种引用XML文档部分的方法

a.绝对定位:以/开头,从根结点开始,父/子关系,不能越级(繁琐)

b.相对定位:以//开头,不在乎元素的位置及顺序,关键是有没有匹配到元素表达式

表达式一://标签名[@属性名称=属性值]

表达式二(多个属性定位)://标签名[@属性名称=属性值] and @属性名称=属性值](满足两个属性),//标签名[@属性名称=属性值] or @属性名称=属性值](任意满足一个属性)

c.层级表达式:元素本身的属性不能够唯一定位到元素,借助其比较近的祖先结点来缩小查找范围。先找到某个祖先结点,再在祖先的子孙后代当中查找结点

H)css_selector(执行效率相对来说比较高,定位灵活)

find_element_by_css_selector();

最新文章

  1. js控制文本框只能输入中文、英文、数字与指定特殊符号.
  2. pro5
  3. 学点css基础
  4. 一个使用C#的TPL Dataflow Library的例子:分析文本文件中词频
  5. Xcode 7:Storyboard Reference、Strong IBOutlet以及Scene Dock
  6. JS高级程序设计学习笔记之RegExp类型
  7. WCF应用场景
  8. CCF-201803-2 碰撞的小球
  9. git push 本地项目推送到远程分支
  10. ios MQTT协议的实际应用
  11. 常用的C#编译命令
  12. DataTable转化成实体对象
  13. redmine on centos
  14. Qt通过ODBC来操作Excel
  15. C#socket编程序(一)
  16. js求区间随机数
  17. 从JSON数据中取出相关数据
  18. 746. Min Cost Climbing Stairs 最不费力的加权爬楼梯
  19. 一种可以做app性能监控的app
  20. rocketmq发送消息代码

热门文章

  1. flutter 添加全局环境变量
  2. freetype HarfBuzz fontconfig Cairo 编译顺序
  3. python虚拟环境mkvirtualenv使用
  4. malloc分配内存进行对齐的操作
  5. java:Oracle(Jdbc的封装)和HTML(登录,注册,个人信息界面)
  6. oracle 11g错误ora-01033:oracle initialization or shutdown in progress解决办法
  7. 【DSP开发】【VS开发】MUX和DEMUX的含义
  8. kubernetes集群node加入不了master错误处理
  9. jquery ajax get 数组参数
  10. Java初始和环境搭建