• 0
  • 0
分享

  相信很多小伙伴都用过Selenium来完成爬虫工作,今天就给大家带来一个神器,可以录制你的浏览器动作,然后直接生成Selenium脚本,是不是心动了?

  1、Selenium简介

  Selenium是为了测试而出生的。但是没想到到了爬虫的年代,它摇身一变,变成了爬虫的好工具。

  让我试着用一句话来概括Seleninm:它能控制你的浏览器,有模有样地学人类「看」网页。

  那么你什么时候会要用到Selenium呢?

  1)当你发现用普通方法爬不到想要的内容;

  2)当网站跟你玩「捉迷藏」,包含了太多的JavaScript内容;

  3)当你需要像人一样浏览的爬虫。

  好了,Selenium的其他这里不再赘述,本公众号已与Google达成战略协议,Google可以免费提供Selenium的其他信息!

  2、KatalonRecorder

  KatalonRecorder 是个能够记录你使用浏览器的操作的东东。

  相信很多小伙伴都知道一个叫「按键精灵」的东西,它帮我做了很多重复性的工作,这个KatalonRecorder插件+Selenium就和按键精灵是一个意思,记录你的操作,然后你可以让电脑重复上千遍。

  2.1安装

  谷歌应用商店和火狐插件均可下载安装。

2-1.jpg

2-2.jpg

  安装完成后,右上角会出现插件图标:

2-3.jpg

  2.2使用

  点击图标,会出现单独的KatalonRecorder窗口:

2-4.jpg

  其中:

  ①工具栏;②用例管理器;③用例详情;④Log/Reference/Variable

  点击窗口上的Record,下面就会开始录制浏览器操作了。

  这里我们打开拉勾网首页,并搜索「Python」,然后点击下一页。

  进入网站时的这个动作也可以录制:

2-5.jpg

  进入网站时的这个动作也可以录制!

  每当点击的时候,插件就会记录下你这些点击。

2-6.jpg

  录制完成后,点击「Play」还可以进行动作回放,会重新自动执行刚刚录制的动作。

  最后神奇的事情将要发生你可以点击Export按钮:

2-7.jpg

  可以根据录制的事件生成代码,这里不单单可以生成Python代码,Java、C#、Ruby等,都不在话下。

2-8.jpg

  这里的脚本应该是自动化测试使用的,我们爬虫时只要截取其中的selenium、driver部分的即可。

  driver.get("https://www.lagou.com/")driver.find_element_by_link_text(u"全国站").click()driver.find_element_by_id("search_input").click()driver.find_element_by_id("search_input").click()driver.find_element_by_id("search_input").clear()driver.find_element_by_id("search_input").send_keys("python")driver.find_element_by_id("search_button").click()driver.find_element_by_xpath(u"(.//*[normalize-space(text())?and?normalize-space(.)='下一页'])[1]/following::span[5]").click()

  3总结

  使用KatalonRecorder可以完成以下脚本的自动生成,但有时会不太好使,比如上面的下一页的点击,我运行代码时就不管用,还需要后续进行微调。

  KatalonRecorder还有很多其他方面的功能,其实人家是用来录制自动化测试脚本的,我们只是用了其中很少一部分功能,也算是抛砖引玉,有兴趣的同学快试试吧~


作者:不正经程序员    

来源:http://www.51testing.com/html/79/n-7795579.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、对系统整体的了解Server端:jsp+Servlet+json数据库:sql、MySQL、oracle等前台:涉及到jstl,jsp,js,css,htm等方面后台:servlet,jms,ejb,还有很多框架,struts,hibernate,spring,ibatisJsp:分不清前后台的,因为这里涉及到一个运行时刻的问题,它们的运行时刻是不同。用户发出请求后,服务器解析用户请求,转至对应的jsp,这个时候可以说是整个jsp都是后台程序。而Jsp做出响应后,把响应的内容返回给浏览器,这个时候浏览器就只看见html,css,javascript,这个时候所有的程序又都是前台程序。二、前...
            0 0 3317
            分享
          • 读者提问:如何提交一个 BUG?阿常回答:这个问题我从两方面回答:1、BUG 有效性 ;2、BUG 三要素 。一、BUG 有效性避免提交无效 BUG 。一)未经过二次确认就提交的 BUG翠花同学发现了一个 BUG ,她立马给开发提 BUG,未经过二次验证确认问题的有效性(譬如重复刚刚的操作步骤,该问题能不能重现),把无效的问题提给了开发。二)需求理解不清晰就提交的 BUG明明需求就是这样定义的,翠花同学需求理解有偏差,并且没有和产品研发确认需求,就把无效的问题提给了开发。三)BUG 描述不清,开发复现全靠猜翠花提交给开发的 BUG,要么就一张图,要么就一句话。开发完全不知道...
            0 0 1652
            分享
          • 在天网查上看了一下全国软件公司有1000多万家,其中上市的公司有7万多家,也就是占比0.7%通过这个数据可以发现,大部分公司从实力和规模上都偏向中型或者小型也就说其中的流程不一定很健全,设置没有流程而言。下图窃取了两张数据的图片供参考 为什么要指出这个问题,笔者目前在二线城市,工作10年经历过几家公司,很少有公司把流程指定的很正规和完善基本上的形式是 常规瀑布模式和敏捷模式 相结合,赶上功能已上线,出现Bug时  常见的状态开发快速定位问题进行修改测试抓紧时间进行测试,测完后上线发布 所以得出的结论是流程不重要,重要的是大家同心协力把问题解决,产品快速上线那么问题...
            0 0 1803
            分享
          •   网关是指内部服务和第三方外部服务交互的接口,常见的网关有通过渠道引入外部用户的通用网关、和支付商户对接的支付网关、获取第三方数据的数据网关等(一种是我们提供给第三方调用,一种是去调用第三方,这里重点讨论第二种)。  因为网关接口需要依赖第三方响应的结果,而不管我们请求参数如何,第三方测试环境响应结果基本固定,不一定会出现我们想要的情况。  还有一种情况是测试账号的原因,比如缺少有效的信用卡号、有流水记录的淘宝卖家账号等,导致我们使用的测试账号只能覆盖单一的情况。  虽然对网关来说大部分时候只要能和第三方调通就可以,但是线上情况不可控,只验证正常情况当然不够严谨,需要确保各种可能出现的异常情...
            0 0 1068
            分享
          • 摘要:你越早发现你代码里的问题,它们的影响越小并且花越低的成本去修复它们。因此,它有助于更早地在软件开发生命周期中推动测试活动——在流程时间轴上左移。这篇文章探索了左移方法,并告诉你在你的组织中如何着手左移。敏捷和开发运营团队对左移的混战是关于更早地在开发生命周期里移动关键的测试活动。很多测试活动在周期里发生得晚,它花费了更多的时间去定位问题,更多的成本去修复它们。当你在开发周期之后等待实施测试活动,特别你的非功能业务需求,比如安全和性能测试,如此基本地根深蒂固在你的代码里,以至于你实际能做的是给它们打补丁而不是恰当地修复它们。左移是关于更快地做这种识别和预防缺陷。发现并修复软件缺陷左移的测试...
            0 1 3152
            分享
      • 51testing软件测试圈微信