Katalon Studio通过识别图片处理浏览器文件下载弹出框

2018年8月10日 7.27k 次阅读 9 条评论 1 人点赞

写在前面
俗话说的好啊!兄弟!有酒可以一起喝,架,我们可以一起打,但是你给我提IE,对不起我们不认识!
哈哈,从这句话就可以看出IE浏览器的UI自动化的实施是多繁琐了吧?
最近博主在实施UI自动化项目,而且这个项目是一个历史悠久的系统,使用的就是IE8浏览器。
所以,在做到有关文件导出和下载的测试案例时,就遇到了问题。

解决问题
IE浏览器本身弹出的下载弹出框无法处理,因为是浏览器本身的弹出框,所以这不是一个Alert,也不是一个JS弹出框。那么这个问题怎么处理呢?
解决问题的基本思路:
1.能不能当作Alert处理?-------处理失败!
2.首先考虑能不能通过浏览器设置去掉这个弹出框?
-------博主没找到设置方法,网上大多数是XP系统的设置方法!
3.能不能模拟鼠标操作实现点击?------元素定位不到!鼠标模拟也无法实现!
4.能不能通过模拟键盘输入实现点击?------元素定位不到!鼠键盘模拟也无法实现!
5.是不是需要先跳转窗体焦点才能定位到元素?
driver.switch_to_default_content()-------定位焦点未报错,但是元素定位同样是失败!
......
IE
在经过各种尝试了以后,最终失败告终。就在博主准备放弃这条案例的时候,突然发现Katalon Studio竟然有一种神级的功能:可以通过图片是别的方式定位元素!这简直是一个惊奇的发现,之前从来没用过。当然在实现的步骤中还需要结合一些小技巧。说干就干,看一下应该如何实现呢?
1.手动截图需要处理的部分,命名,选择路径,存储到Katalon Studio对象存储库,博主截了两个需要用到的图:
image_export:
photo1
image_export_open:
photo2
存储图片到项目路径下,博主选择元素存储路径下的文件夹:
photo5
Katalon Studio中新建和图片对应的元素,起个名字你随意:
photo3
选择新建的图片元素,设置属性,只要选择图片的路径,然后勾选使用相对路径即可:
photo4
2.点击应用下载按钮(弹出下载提示的上一步),加个方法等待图片image_export出现,然后再点击图片image_export_open;至此,Katalon Studio通过识别图片的方式处理浏览器文件下载弹出框实施成功。

Manual视图
附上Manual视图操作步骤:
photo6
Script视图
附上Script视图操作步骤代码:

WebUI.click(findTestObject('Object Repository/xxxxxxxxx/btn_confirm_export'))

WebUI.waitForImagePresent(findTestObject('Page_Counter/xxxxxxxxx/image_export'), 20)

WebUI.clickImage(findTestObject('Page_Counter/xxxxxxxxxxxxxxxx/image_export_open'))

WebUI.takeScreenshot('保存导出截图' + '.png')

风里云里,我在这里等你!

文章评论(9)

  • elena

    ClickImage是可以的,但可以针对输入框的吗,您给出的只是可以找到对象和点击对象的关键字,请问有可以通过这种方式输入值吗?

    2019年5月27日
    • elena

      已找到解决方法

      2019年5月27日
      • Altumn

        还有个方法:
        WebUI.typeOnImage(findTestObject(null), '')

        2019年5月27日
        • elena

          嗯,我就是用的这个

          2019年5月27日
  • 11

    自动化测试学习交流群:670250199

    2019年3月28日
  • 微零

    手机测试,可以用这种方式吗?

    2018年10月25日
    • Altumn

      可以。

      2018年10月26日
    • Altumn

      你可以可以试试这个:https://www.testclass.cn/airtest_project_test.html

      2018年10月26日
      • 微零

        这个在试了,感觉也不太好用

        2018年10月26日