【解决方案】如何调试影刀应用
评论
收藏

【解决方案】如何调试影刀应用

官方资讯
白云
2022-03-29 15:47·浏览量:6700
白云
发布于 2022-03-29 11:32更新于 2022-03-29 15:476700浏览

往期解决方案

批量下载网页图片常见场景和解决方案

网页懒加载场景和解决方案

网页相似元素循环常见场景及解决方案

淘宝订单导出解决方案

网页弹窗处理

网页数据获取时需要翻页或下拉

正则表达式和全局变量在元素编辑中的应用

使用网页监听指令获取数据


介绍调试

影刀提供的调试工具可以解决许多错误。本篇对如何在影刀中调试应用进行系统的介绍。


只有在编辑器中打开应用时,才能对应用进行调试,计划任务执行、API 调度执行、后台调度执行或应用外页右键运行时,不能进行调试。


在需要暂停的地方,通常是报错或者出现错误的指令上打断点,如果执行到这条指令,整个应用的运行会暂停,自动暂停时,打断点的指令尚未运行。

打断点的方法:鼠标移动到需要打断点的指令的行号后面的空白处,点击。指令前会出现一个橙色的点,这个就是断点。

程序执行到断点暂停时,可以在下方调试变量板块看到此时所有已经定义的变量的实时的值和类型。

暂停时,点击继续来继续执行,如果程序执行时又遇到一个断点,则会在断点处再次暂停;点击单步调试,运行当前暂停到的指令,如果按单步调试前在第四行停止,按单步调试会执行第四条指令,然后在下一条指令暂停。


调试的一般步骤

以一个在百度批量搜索 Excel 关键字的应用来演示:

浏览器的百度网站和 Excel 表格都已经事先打开。

运行应用时,第二行指令报错 AttributeError: 'NoneType' object has no attribute 'get_active_sheet'

在报错的指令前添加断点,再次运行:

Excel 对象变量是 None,说明没有用启动 Excel 或获取当前激活的 Excel 为这个变量赋值,导致无法找到激活的 Sheet 页。添加获取当前激活的 Excel 指令,取消断点后再次运行,填写输入框指令报错 Can not convert Array to String.

在第四行打断点后再次运行,发现循环 Excel 内容时循环项是列表,导致输入的 loop_excel 变量是个列表,报错无法将列表直接转为字符串输入:

改为从列表中取第一项填入输入框,取消断点再次运行,发现有一次没有填写内容就执行了搜索。再次在第四行打断点,一边观察 loop_excel 的内容一边点击继续,在循环中下一次执行到第四行时暂停,直到发现有一次 loop_excel 的内容是 [None]

对照表格后发现表格中有一行是空行,删去空行,取消断点后运行正常。


总结

①在出错的指令前打断点,在调试变量页查看变量的实时数值和类型

②暂停时执行到的指令,还没有被执行

③继续:继续执行,直到执行到下一个断点(包括下一次执行到循环中的相同断点时)或者执行结束,单步调试:每次点按多执行一条指令


本文帮助中心原文链接:如何调试影刀应用

收藏1
全部评论1
最新
发布评论
评论