51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1770|回复: 0
打印 上一主题 下一主题

你该了解的自动化测试工具:Selenium控制浏览器的常用方法!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-1 16:09:24 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

Selenium怎么来的?

  Selenium这个词,是化学元素硒(Se)的意思。在软件测试领域,它是绝对的自动化测试开源项目的标杆。取这个名字也是有讲究的,在当时乃至如今的软件测试领域,QTP(UFT)占有率非常高。Quick Test Professional是Mercury公司开发的,自然就是汞(Hg)。在生物学,研究发现硒对汞有拮抗作用,也就是硒克汞。Selenium取名的用意不言而喻。

Selenium控制浏览器的操作

  Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。

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

  有时候我们希望能让浏览器以某种尺寸打开,让访问页面在这种尺寸下运行,或者控制浏览器进行后退与前进操作等等。

  今天主要介绍一下浏览器控制的一些常用属性和方法,他们大多集中在selenium.webdriver.remote.webdriver类中。不管是用哪种浏览器,他们都继承自remote.webdriver类,用的方法属性都是相同的。

  下面举个几个控制浏览器的例子。

  一、控制浏览器窗口大小

  有时候我们希望能以某种浏览器尺寸打开,让访问的页面在这种尺寸下运行。例如可以将浏览器设置成移动端大小(480* 800),然后访问移动站点,对其样式进行评估;WebDriver提供了set_window_size()方法来设置浏览器的大小。

二、设置休眠时间


  由于打开百度网址后,页面加载需要几秒钟,所以最好等到页面加载完成后再继续下一步操作。

三、控制浏览器前进后退

  在使用浏览器浏览网页时,浏览器提供了后退和前进按钮,可以方便地在浏览过的网页之间切换,WebDriver也提供了对应的back()和forward()方法来模拟后退和前进按钮。下面通过例子来演示这两个方法的使用。

 四、页面刷新

  有时候页面操作后,数据可能没及时同步,需要重新刷新。

  五、页面截图

  自动化用例是由程序去执行的,因此有些时候打印的错误信息并不十分明确。如果在脚本执行出错的时候能够对当前窗口截图保存,那么通过图片就可以非常直观的看出出错的原因。WebDriver提供了截图函数get_screenshot_as_file()来截取当前窗口:

 值得注意的是,当使用窗口截屏功能时,图片的扩展名必须是png!!

  六、关闭退出浏览器

  退出有两种方式,一种是close;另外一种是quit。

  close用于关闭当前窗口,当打开的窗口较多时,就可以用close关闭部分窗口;

  quit用于结束进程,关闭所有的窗口。

 总结:
  先列举几个常见的属性:
  current_url: 返回当前浏览器的url
  title: 返回当前页面title
  current_window_handler:返回当前窗口的句柄,这在多窗口切换的时候会用到
  window_handlers: 返回当前浏览器的所有窗口的句柄。
  以下是常见的控制浏览器的方法:
  get(url): 加载指定的网页
  back()/forward(): 对应于浏览器的向前向后按钮
  implicitly_wait(time): 隐式等待,在元素被找到前的等待时间,time的单位是秒。它的作用域是全局的,一个session只用设置一次,任意元素如果在指定时间内没有被找到则抛错。会用单独一篇来介绍元素等待的话题,在这里就不详细解释了
  close(): 关闭当前的窗口
  quit(): 关闭整个浏览器,所有的窗口都会关闭
  refresh(): 刷新网页
  get_screenshot_as_file(filename): 保存浏览器的截图到一个png文件, 这里要注意filename需要是一个完整的路径,例如/Users/jack/Downloads/screenshot.png.
  set_window_position(x,y,windowHandle='current'): x,y的单位是像素,设置浏览器的位置。get_window_position()则可以获得浏览器当前的位置
  set_window_size(width,height, windowHandle='current'): width, height的单位是像素,设置浏览器的长宽。get_window_size()可以获得浏览器的尺寸
  maximize_window(): 最大化窗口

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 09:27 , Processed in 0.069968 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表