开发者社区 问答 正文

如下请问阿里云RPA的这些问题怎么解决?

我用这个控件点击验证码输入框,想让验证码弹出来,现在的结果是rpa点击之后输出的结果是验证码已经出现,可是页面看不到,截图也截不到
5dd7122f2aba4c9be6976707e0bbe4a9.png
https://www.chsi.com.cn/xlcx/lscx/query.do
50692d65653ff57348443ecc4c283287.png
4052a3a6306527c32e9758a33d18b0bc.png
用rpa的控件点击,页面没出现,人用鼠标点能出现

展开
收起
乐天香橙派 2023-12-04 17:46:39 102 分享 版权
来自: 阿里云RPA
阿里云 AI 助理回答

根据您描述的问题,RPA工具在点击验证码输入框时,页面未显示验证码,但RPA输出结果显示验证码已出现。这种情况可能与控件的模拟点击行为、页面加载机制或浏览器自动化插件的兼容性有关。以下是详细的分析和解决方案:


1. 问题分析

  • 模拟点击 vs 实际点击
    RPA工具在执行点击操作时,默认可能使用的是“模拟点击”(simulate=True)。模拟点击通过直接向控件发送指令实现,而不依赖于鼠标的实际移动和点击。这种方式可能导致某些动态交互(如验证码弹出)无法正确触发。

  • 页面加载延迟
    验证码弹出可能依赖于页面的异步加载逻辑(如JavaScript事件)。如果RPA在页面尚未完全加载时就执行了点击操作,可能会导致验证码未能正确显示。

  • 浏览器插件兼容性
    如果您使用的是Edge浏览器,且RPA的Edge插件未正确安装或配置,可能会导致页面交互异常。

  • 验证码机制限制
    某些网站对自动化工具的行为进行了限制,例如检测到非人工操作时会阻止验证码弹出。


2. 解决方案

方案一:调整点击模式

将点击模式从“模拟点击”改为“实际点击”,以确保页面能够正确响应点击事件:

page.click('验证码输入框', simulate=False)
  • 说明simulate=False表示RPA将通过实际的鼠标点击操作来触发事件,而非直接向控件发送指令。这可以解决部分因模拟点击导致的交互问题。

方案二:增加等待时间

在点击验证码输入框之前,确保页面已完全加载。可以通过以下方式增加等待时间:

page.wait_loaded(timeout=10)  # 等待页面加载完成,超时时间为10秒
page.click('验证码输入框', simulate=False)
  • 说明wait_loaded方法用于等待页面加载完成,避免因页面未加载而导致的交互失败。

方案三:检查浏览器插件配置

确保RPA的Edge插件已正确安装并启用: 1. 打开Edge浏览器,进入扩展程序页面(edge://extensions/)。 2. 检查是否已安装阿里云RPA插件。如果未安装,请参考以下步骤安装: - 方法一:手动拖拽插件文件(chrome.crx)至扩展程序页面,并替换相关文件。 - 方法二:运行1.13setup.bat文件进行自动安装。 3. 确保插件的“收集错误”功能已开启,并检查是否有报错信息。


方案四:使用图像录制模式捕捉控件

如果基于自动匹配模式无法正确识别验证码输入框,可以尝试使用图像录制模式: 1. 在RPA编辑器中选择“图像录制模式”。 2. 截取验证码输入框的区域,并设置验证动作。 3. 使用图像识别的方式匹配目标控件。


方案五:绕过验证码机制

如果上述方法均无效,可以考虑通过第三方打码平台(如超级鹰)实现验证码的自动识别和输入: 1. 使用RPA工具截取验证码图片:

page.screenshot('验证码截图', 'C:\\Users\\用户\\Desktop\\验证码.png')
  1. 调用第三方OCR接口识别验证码:
    def OCR_recognition(screenshot_path):
       captcha_user = '超级鹰用户名'
       captcha_pwd = '超级鹰密码'
       captcha_soft = '96001'
       captcha_cjy = Chaojiying_Client(captcha_user, captcha_pwd, captcha_soft)
       im = open(screenshot_path, 'rb').read()
       dis_result = captcha_cjy.PostPic(im, 9101)
       return dis_result['pic_str']
    
  2. 将识别结果输入验证码框并提交:
    dis_code = OCR_recognition('C:\\Users\\用户\\Desktop\\验证码.png')
    page.input_text('验证码输入框', dis_code, simulate=True)
    page.click('提交按钮', simulate=False)
    

3. 重要提醒

  • 验证码机制限制:部分网站可能对自动化工具的行为进行了严格限制,建议在合法合规的前提下使用RPA工具。
  • 调试建议:在调试过程中,建议逐步验证每个步骤的执行结果,例如通过截图确认页面状态,或通过日志记录关键变量的值。
  • 插件兼容性:如果问题仍然存在,请联系阿里云RPA技术支持团队,提供详细的错误日志和操作步骤以便进一步排查。

通过以上方法,您可以有效解决RPA工具在点击验证码输入框时页面未显示验证码的问题。如果仍有疑问,请随时补充说明具体场景和错误信息,我们将为您提供进一步的支持。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
收录在圈子:
+ 订阅
阿里云RPA历经8年的内部验证,覆盖了阿里巴巴大部分BU,实现了电商客服、新零售等新兴行业的渗透,并且已经完成在保险、金融、医疗保健等领域的场景深耕,联合合作伙伴具备深度定制化能力和稳定交付能力,积累了丰富的行业可行性解决方案。目前阿里云RPA能集成并运行在更高的软件层级,这就决定了它不会侵入、影响已有的软件系统。在帮助企业提升效能的过程中,保持企业已有的IT系统功能平稳、运行可靠。
还有其他疑问?
咨询AI助理