

在网页自动化场景中,经常会遇到页面包含 iframe(内嵌框架)的情况,这些 iframe 往往加载来自其他域名的网页内容(即跨域 iframe)。影刀 RPA 提供了专门的指令来处理这类跨域网页元素的获取,本文以网页中iframe方式嵌入Google reCAPTCHA验证码服务网页为例,详细介绍获取iframe跨域网页元素、操作跨域网页元素的具体步骤和相关指令。文章的最后给出了完整的RPA流程指令。
跨域 iframe 是指 iframe 的src属性指向与主页面不同域名的网页,由于浏览器的同源策略限制,直接操作这类元素会遇到障碍。影刀 RPA 通过特殊的框架切换机制,能够突破这一限制,实现对 iframe 内部元素的定位和操作。
打开包含目标 iframe 的主页面,使用 "网页操作" 分类下的“打开网页”指令。
指令主要参数为:
o 网址:输入主页面的 URL, https://www.google.com/recaptcha/api2/demo
o 浏览器:选择需要使用的浏览器(如 Chrome、Edge)
初始化iframe实例,用于后续iframe内嵌网页元素的获取和操作,使用"XPath跨域获取网页元素"分类下的“初始化IFrame”指令。
指令主要参数为:
o 网页对象:步骤1“打开网页”指令输出的网页对象
根据xpath切换iframe对象,使用"XPath跨域获取网页元素"分类下的“切换IFrame”指令。
指令主要参数为:
o IFrame对象:步骤2“初始化IFrame”指令输出的iframe对象
o IFrame_XPath:使用浏览器网页开发者工具找到对应的iframe元素,复制iframe元素完整的XPath,/html/body/div[1]/form/fieldset/ul/li[5]/div/div/div/div/iframe
o 基于当前IFrame全局查找:勾选

以xpath方式获取iframe内嵌网页中的跨域网页元素,使用"XPath跨域获取网页元素"分类下的“获取元素对象-XPath跨域”指令。
指令主要参数为:
o IFrame对象:步骤3“切换IFrame”指令输出的iframe对象
o XPath:使用浏览器网页开发者工具找到验证码勾选框元素,复制勾选框元素的XPath,//*[@id="recaptcha-anchor"]

使用"XPath跨域获取网页元素"分类下的“点击元素-XPath跨域”指令。
指令主要参数为:
o IFrame对象:步骤4“获取元素对象-XPath跨域”指令输出的iframe对象
o XPath:与步骤4一样的XPath,//*[@id="recaptcha-anchor"]