如何调试影刀应用

介绍调试

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

只有在编辑器中打开应用时,才能对应用进行调试,计划任务执行、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]

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

总结

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

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

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

问题没有解决?去社区提问 all right reserved,powered by Gitbook

results matching ""

    No results matching ""