activities
latest
false
重要 :
请注意此内容已使用机器翻译进行了部分本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。
UiPath logo, featuring letters U and I in white

用户界面自动化活动

上次更新日期 2024年12月20日

插入 Js 脚本

UiPath.Core.Activities.InjectJsScript

在与用户界面元素对应的网页环境中执行 JavaScript 代码。

属性

输入
  • 脚本代码 - 要运行的 JavaScript 代码。可在此处将其写作字符串形式,或添加包含待执行代码的 .js 文件的完整路径。脚本代码应包含单个匿名函数,如以下示例所示:
    function (element, input) {
        return "result";
    }function (element, input) {
        return "result";
    }
    async function (element, input) 
    {
        const asyncResult = await new Promise((resolvePromiseCb) => 
        {
            const timeoutMs = 100;
            setTimeout(() => 
            {
                resolvePromiseCb("async_result");
            }, 
            timeoutMs);
        });
        return asyncResult;
    }async function (element, input) 
    {
        const asyncResult = await new Promise((resolvePromiseCb) => 
        {
            const timeoutMs = 100;
            setTimeout(() => 
            {
                resolvePromiseCb("async_result");
            }, 
            timeoutMs);
        });
        return asyncResult;
    }
    其中 element 表示与调用用户界面节点对应的 HTML 元素,input 表示调用者提供的输入字符串。
  • “输入参数”- JavaScript 代码的输入数据,为字符串或字符串变量形式。
  • “目标选择器” - 执行活动时用于查找特定用户界面元素的文本属性。 它实际上是一个 XML 片段,用于指定您要查找的 GUI 元素及其某些父元素的属性。
  • Target.TimeoutMS - 指定在引发 SelectorNotFoundException 错误之前等待活动运行的时间(以毫秒为单位)。 默认值为 30000 毫秒 (30 秒)。
  • Target.WaitForReady - 在执行操作之前,请等待目标就绪。 提供以下选项:

    • “无”- 在执行操作之前,系统不会等待显示除目标用户界面元素之外的任何内容。例如,如果希望只从网页检索文本或单击特定按钮,则可以使用此选项,而不必等待用户界面元素全部加载。请注意,如果按钮依赖于尚未加载的元素(例如脚本),则可能会产生不良后果。
    • “交互/完成” - 待目标应用程序中的所有用户界面元素全部显示之后,再实际执行操作。

      为了评估应用程序处于“交互”状态还是“完成”状态,系统将验证以下标签:

    • “桌面应用程序”- 系统会发出一条“wm_null”消息,以检查是否存在“<wnd>”、“<ctrl>”、“<java>”或“<uia>”标签。如存在,则执行活动。
    • 网页应用程序:
    1. Internet Explorer - <webctrl> 标签用于检查 HTML 文档的就绪状态是否设为完成。此外,必须将忙碌状态设置为“False”。
    2. 其他 - <webctrl> 标签用于检查 HTML 文档的“就绪”状态是否为“完成”
    • “SAP 应用程序”- 首先验证是否存在“<wnd>”标签,然后使用 SAP 特定 API 来检测会话是否繁忙。
  • “目标.元素” - 使用另一个活动返回的用户界面元素变量。 此属性不能与“选取器”属性一起使用。 此字段仅支持用户界面元素变量。
  • Target.ClippingRegion - 沿以下方向定义相对于用户界面元素的剪切矩形(以像素为单位):左、上、右、下。 它支持正数和负数。
输出
  • 脚本输出- JavaScript 代码返回的字符串结果。
常见
  • “显示名称”- 活动的显示名称。
  • “出错时继续”- 指定在活动引发错误时是否应继续自动化操作。该字段仅支持“布尔值”(True 和 False)。默认值为 False。因此,如果该字段为空且活动引发错误,系统将停止执行项目。如果该值设为“True”,则无论出现何种错误,系统都将继续执行项目。

    注意:如果 Try Catch 异常处理中包含该活动且出错时继续属性的值为 True,则系统在执行项目时不会捕获任何错误。
其他
  • “私有”- 选中后将不再以“Verbose”级别记录变量和参数的值。
选项
  • 执行 环境 - 用于执行脚本的 JavaScript 环境。

    • “隔离”- 环境允许访问 HTML 元素,但禁止访问页面变量和代码。使用此选项可确保脚本执行不会与页面冲突。
    • “页面” - 允许访问 HTML 元素、页面变量和代码。 如果您需要访问页面变量(例如 jQuery $)或与页面代码交互(例如 window.alert),请使用此选项。 要修复此特定于 MV3 扩展程序的 已知问题 ,则需要使用此选项。

您可以通过 “ 项目设置”更改所有“注入 Js 脚本”活动的“执行”世界属性。

注意:UiPath.UIAutomation.Activities 版本 22.12 开始,“执行世界” 选项可用。

使用“注入 JS 脚本”活动的示例

注入 JS 脚本活动用于打开浏览器并处理这些页面中的 .js 文件。您必须安装并启用浏览器扩展程序。

为了举例说明如何使用此活动,我们创建了一个示例,该示例将打开浏览器并显示带有用户指定文本的警示。

此自动化流程的构建方法如下:

  1. 打开 Studio ,创建一个新“流程”

    注意:确保将 .js 文件放置在项目文件夹中。在此示例中,我们使用了文件 example.js
  2. 序列活动拖动至“工作流设计器”。

    • 创建以下变量:

      变量名称

      变量类型

      默认值

      TextToWrite

      泛型值

       
  3. 将“ 输入对话框 ”活动拖动到“ 序列 ”容器内。

    • 属性面板中,向显示名称字段添加名称 Ask for message
    • 在“标签”字段中添加表达式“"Please insert the text to be written on the web page."”。
    • 标题字段中添加 "Please insert text" 消息。
    • 在“结果”字段中添加 textToWrite 变量。
  4. 在“ 输入对话框 ”活动下方放置一个“打开浏览器”活动。

    • URL字段中添加地址 "https://www.google.com/"
  5. 将“注入 JS 脚本”拖动到“打开浏览器”活动的“正文”容器中。

    • 属性面板中,向显示名称字段添加名称 Show Alert
    • 在“输入参数”字段中添加变量 TextToWrite
    • 在“脚本代码”字段中添加表达式“"Inject JS\example.js"”。
  6. 运行流程。机器人将打开一个新的浏览器页面,并为警示提供您添加的文本。


  • 属性
  • 使用“注入 JS 脚本”活动的 示例

此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo White
信任与安全
© 2005-2024 UiPath。保留所有权利。