• 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 通过前一节的学习,我们用一些实际测试中的例子快速回顾了下我们在日常测试用例设计时最常用的两个方法——等价类划分法、边界值法,……通过这些方法的回顾,我们对这些平日里习以为常的方法有了更多与实战相结合的理解。这一节,我们将在此基础上做一个延伸,从实际需求出发,换一个视角,来应用这些测试用例设计的基本方法,从而加深我们对这些方法的理解。在实际测试过程中,特别是涉及UI界面的功能测试时,很多同学都会有一种照着需求文档的描述写用例的习惯。需求怎么写,用例就怎么设计,它怎么描述功能点,我就根据描述来设计用例,缺少从更高的角度审视这个需求的视角。这样的方法很容易出现测试用例的遗漏,导致测试的遗漏。我就以大...
            0 0 58
            分享
          • 什么是大数据?大数据是不能使用传统计算技术处理的大型数据集的集合。这些数据集的测试涉及各种工具,技术和框架来处理。大数据涉及数据创建,存储,检索和分析,在数量,多样性和速度方面都非常出色。您可以在这里了解有关大数据,Hadoop和Mapreduce的更多信息,在本教程中,我们将学习:大数据测试策略验证大数据应用程序的测试步骤架构测试性能测试测试环境需求大数据测试 传统数据库测试大数据场景中使用的工具大数据测试中的挑战测试大数据应用程序更多的是验证其数据处理,而不是测试软件产品的个别功能。当涉及到大数据测试时,性能和功能测试是关键。在大数据测试中,QA工程师使用集群和其他支持组件来验证TB级数据...
            15 15 1755
            分享
          •   与 iPhone 14 系列相比,iPhone 15 系列新增了大量值得升级的功能。苹果公司新推出的 iPhone 15 Pro 机型配备了创新的摄像头硬件,能够以可变焦距拍摄照片。另一方面,iPhone 15 机型配备了"灵动岛"(Dynamic Island)功能,使其更接近"Pro"机型。  最初有传言称,苹果将提高整个 iPhone 15 系列的价格。不过,与去年的 iPhone 14 Pro 机型相比,iPhone 15 Pro 在英国的价格反而下降了 100 多英镑。  今年的iPhone 15 和 iPhone 15 Plus 的起价与...
            0 0 1628
            分享
          •   据报道,当地时间周四,谷歌宣布,将在其加拿大平台上封锁加拿大新闻。在此之前,Facebook也采取了类似的措施,以此对抗该国强制要求互联网平台向当地新闻机构付费的新规。  当该法律大约6个月后生效时,谷歌将在其加拿大搜索结果及其他产品中删除指向加拿大新闻的网络链接。  Facebook母公司Meta上周也宣布了类似的声明,以此抗议加拿大刚刚通过的C-18法案,即《在线新闻法案》。  加拿大媒体行业呼吁对互联网巨头加强监管,以使新闻机构能够挽回多年来因为Facebook和谷歌等在广告市场攻城拔寨而遭受的损失。  加拿大独立预算监管机构去年估计,新闻企业每年可以从该法律强制的交易中获得3.3亿...
            0 0 1151
            分享
          •   是不是好多人拿到需求之后,就直接按照自己的理解去测试了呢?如果直接去测试,会有很多需求理解的偏差,测试过程中会发现自己理解的需求跟开发实际做出来的功能不一致。那么拿到一个需求后,我们应该如何做呢?  1、进行需求分析讨论  拿到需求后,我们应该先将需求文档自己过一遍,标出自己不理解的地方或者可能会有争议的地方。当然我们也可以借鉴一下同类网站类似的功能是怎样处理的,这样更有助于我们理解需求。然后联系需求人员和开发人员,在大家有时间的时候一起讨论一下需求到底是怎样的,把自己对需求的理解表述一下,然后把自己不理解的地方和可能会有争议的地方拿出来大家一起讨论,往往在讨论的过程中会有一种豁然开朗的感...
            12 14 3596
            分享
      • 51testing软件测试圈微信