• 2
  • 2
分享

  做Web自动化的小伙伴们都知道Selenium,可以全面模拟各种网页上的键盘、鼠标、事件。

  Selenium虽好,但是定位并不容易,不论CSSselector,还是XPATH,学习曲线也还是有的。

  有没有更简单的Web自动化测试工具?

  Selenium不好学?那你可能需要的是Helium 

  有!老司机今天给大家介绍一个比Selenium更简单的自动化测试工具——Helium。

  Helium是Python的一个类库,需要事先用pip方式安装。

  pip install helium    

  确保Chrome或者FireFox浏览器已经安装。不需要配合Firefox和Chrome浏览器的驱动Geckodriver不需要ChromeDriver。

  从安装上,Helium就开始走简约路线了。

  下面举几个具体例子,小伙伴们一起看看Helium的让人瞠目结舌的简洁。

  1、一个打开百度首页,执行搜索

  Helium的代码如下:

7-1.png

  定位都省掉了,太简洁了!Helium不香吗?

  如果启动火狐浏览器,那么只需要使用 start_firefox() 就可以了。

  2、等待DOM元素出现

  Helium的代码只需要一行:

7-2.png

  让我们对比一下Selenium的写法:

7-3.png

  是不是Helium快多了?

  3、点击网页上的链接

  在网页上定位到某个链接,再点击,这是Web自动化测试的基本步骤,用Helium实现起来,又双叒叕是短短一句话搞定:

7-4.png

  小伙伴,你没看错,

  “找到‘新闻’链接,再点击该链接”

  就是click(Link(“新闻”))这么短短一句... 

  老司机试验到这里,已经觉得Helium让自动化测试真的降了不止一个难度。

  但是这就够了吗?还有更惊悚的操作!

7-5.png

  还是百度首页上,点击“新闻”右侧的那个链接。

  小伙伴们可以自行脑补一下Selenium怎么定位的。

  Helium的操作,让老司机惊掉下巴——又是短短一句话搞定:

7-6.png

  只加了“to_right_of=”,搞定!简单到难以置信!

  4、高级功能:无界面浏览器

  某些特殊情况下,小伙伴们在执行自动化测试时候,不需要真的出现一个浏览器窗口。我们通常把这种叫做“无页面浏览器”操作。典型的代表是PhantomJS。

  不需要任何外援,只需要一个参数“headless=True”,Helium自己就可以做到:

  start_chrome('www.baidu.com', headless=True)

  看了上面这么多例子,小伙伴们想问:究竟Helium是何方神圣?

  其实Helium是Selenium Python的高阶封装,屏蔽了很多细节。官方表示:完成同样功能,Helium比Selenium少30% ~ 50% 代码量。

  Helium是一个开源框架,还在继续开发中,目前只支持Firefox和Chrome两种浏览器。

  此外,helium还有更多优点:

  Web Driver管理:helium自带ChromeDriver和Geckodriver的副本,所以用户不需要下载浏览器驱动并配置路径上。相对于Selenium3,不要太友好!

  iFrame处理:与Selenium不同的是,Helium可以自由交互不同iFrame中的元素,而不用“switch to”来切换。

  窗口管理:Helium会注意弹出窗口的打开或关闭,并像用户一样聚焦/切换。用户还可以通过窗口标题的(甚至部分标题)轻松切换到窗口。不再需要迭代Selenium窗口句柄。

  Implicit waits:默认情况下,如果Selenium用户尝试单击DOM元素,但该元素尚未出现在页面上,则脚本将失败。而Helium会最多等待10秒,只等元素出现。

  Explicit waits:Helium提供了一个更好的API来等待web页面上的条件成为现实。

  最后,Helium是个开源项目,项目地址:http://8rr.co/M3V7

  小伙伴们可以自己贡献代码,为Helium添砖加瓦!



作者:kelele  

来源:http://www.51ste.com/share/det-5826.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •       相信很多测试的小伙伴也都遇到过这样的情况,往往产品上线,只要出现bug,成为“背锅侠”。      测试人员在工作中经常打交道的肯定是开发和产品经理,开发将程序写出来,测试员进行测试。软件测试完成后,产品才能生产,在这过程中,难免会遇到软件会出现问题的情况。那么你肯定听过这些话:“这么明显的bug你都测不出来吗?”“为啥这个功能还没测完就上线了?”“研发时间不够,你压缩一下测试时间”“这个bug和开发没关系,注意看需求”      听到这些话,相信你分分钟高血压,这个锅不知...
            0 0 2003
            分享
          • 面试中怎么分析面试官对你的提问面试官问你什么内容的时候,其根本是为了了解你对这个东西的理解程度1、讲自己的了解(知识)2、讲自己的理解你在面试官心目中,会是一个具有独立思考能力的人问题1:你做过IOS测试吗?android和ios测试有哪些区别?操作系统上的不同:ios基于Unix的系统Android基于Linux的系统各个方向:操作Android长按Home键呼出应用列表和切换应用,然后滑动终止应用ios是向上滑动,终止应用 渲染Android是在数据层渲染应用ios是在UI层渲染应用安装Android是apk    Android的权限给的是底层的root权限...
            0 0 2824
            分享
          • 背景APP Push的定义为在手机终端锁屏状态下通知栏展示或在操作前台顶端弹出的消息通知,点击后可唤起对应的APP,并在APP内跳转到指定页面。push流程:push流程对应的测试方案针对整个push消息下发、客户端接收上报流程,测试点可以梳理为:能收到push消息、push消息能正常点击调起APP并跳转到指定页面。push测试工具的实现1、push消息发送工具:push消息发送工具的具体使用:push发送工具的设计与实现:支持多APP、环境、push消息类型的选择,可以给指定用户uid或者设备token发送自定义的push消息。2、push可达性分析工具push可达性分析工具的具体使用:pu...
            0 0 1164
            分享
          •   背景  单元测试是项目研发的重要阶段。相比接口测试、界面测试,单元测试外部依赖最少、颗粒度最细,可以在开发阶段更快、更直接地发现Bug,适合开发团队快速排查错误,是保障研发质量的重要手段之一。  但是,随着单元测试用例数量的增加,执行速度也会逐渐变长。我们经常看到一个现象:在研发人员的研发终端上,运行数千条单元测试脚本,时间超过1个小时。  本文主要是总结了笔者近年来的单元测试经验,分享如何有效提升单元测试的运行速度,节约开发时间。  提升妙招  1、优化单元测试代码  例如:    @Test     pub...
            0 0 1214
            分享
          •   面试中遇到的现场编码挑战,特别是那些故意设计来让你失败的挑战,确实会让人感到不悦。这里有12个关于Playwright的面试问题及答案,希望能给你一些优势。  这些问题的创建是为了迷惑你,所以如果你没有答对,也不要对自己太苛刻。同时,一些答案包含解释和代码示例。请滚动到页面底部查看。  1. 本地环境  如果你在本地机器上使用你需要设置并启动的本地环境运行测试,例如在 http://localhost:3000/,你将如何在测试运行期间处理本地环境的设置?  可能的答案:  · 在运行测试之前启动你的本地环境  · 在package.json中编写一个脚本来启动本地环境...
            0 0 700
            分享
      • 51testing软件测试圈微信