

【日期选择】IE兼容模式下,无法获取元素的解决思路
🎯 问题场景:
公司某个上古ERP软件,只能在EDGE的IE兼容模式下运行.
由于业务需要,业务员要导出过往每一天的商品在库报表. (即:在库日报)
以往人工操作,需要从下图日期选择窗体中: 逐年逐月逐日的一个个手动点击. 重复量巨大.

💥 遇到的问题:
由于Windows 11 只有EDGE浏览器
<1>EDGE的IE兼容模式下, F12 开发者工具无法获取任何源代码信息... (如下图)

<2>影刀可正常获取到IE模式下的一级窗口,但对于二级,N级控件弹窗,则无法捕获... 直接提示元素不存在or压根找不到浏览器窗口 (如图所示)


<3>尝试通过AI辅助定位或AI处理也不行.因为有对于次级弹窗,压根定位不到该窗口对象.
🔧 解决方案
💡 业务逻辑梳理:
<1>既然库存日报查询的是过往数据.因此日期选择上不存在 ≥ 当日日期的可能. ➡️ 那么我就以获取系统当前日期作为 [ 结束日期 ] .
<2>对于 [ 开始日期 ] , 则设计了日期自定义对话框,让用户一开始自己选择.
💡 RPA开发思路:
<1>虽然F12开发工具无法获取源代码和Xpath,但影刀可正常获取IE的一级窗口和按钮元素,但会卡在日期控件弹窗无法获取. 通过实际操作后发现,可通过键盘快捷键,如{Tab}{Space}等做兜底操作.
<2>从业务逻辑的梳理中,我能得到 [开始日期] 和 [结束日期] 两个值, 对两个日期值做 Python切片处理,根据 (年/月/日) 的切片数值相减 , 即得出了分别要对年月日的 键盘的按下次数. 之后在初始日期的基础上进行 For 循环即可实现.
✅ 最终效果
经过测试,用户只需在对话框中任意输入 [开始日期] , 即可实现逐日循环查询每一天的日报. (如下图)
