npm 包 webrobot 使用教程

阅读时长 5 分钟读完

如果您正在寻找一种快捷有效的方式来自动化提交 web 表单或者模拟人类在 web 页面上的操作,那么 webrobot 是一个值得推荐的工具。它是一种能够进行浏览器自动化测试的 Node.js 模块,能够在无头浏览器中对浏览器进行控制,实现自动备份、恢复和重启会话。下面我们来一步步介绍它的使用教程。

安装

首先,我们需要在全局范围内安装 webrobot:

这个命令将会在您的机器上安装 webrobot。

模块概述

webrobot 模块提供了它的主要 API。这些 API 包括:

  • create(robotOptions);
  • robot = robot.then(stepFunc);
  • robot.wait(config);
  • robot.launch(config);
  • robot.action(action);
  • robot.end(function());
  • robot.tearDown(function());

create(robotOptions)

第一步,我们需要使用 create 函数创建一个 Robot 实例。这个函数接受一些配置选项,如:

这个选项用于设置 headless 模式和传递浏览器实例参数。headless 参数的值影响浏览器是否可见,args 参数是一个数组,表示传递给浏览器的参数。

robot = robot.then(stepFunc)

然后,我们需要一步步地定义程序逻辑。可以通过 then 函数来添加一个任务,该任务可以是一个异步函数也可以是一个同步函数。例如:

在这个例子中,我们通过 await page.goto 控制浏览器打开某个网页,通过 await page.title() 获取了当前网页的窗口标题,并打印出来。

robot.wait(config)

为了在进行下一个任务之前等待一段时间,可以使用 wait 函数:

这个例子表示等待 5 秒钟之后再进行下一个任务。

robot.launch(config)

如果您需要启动一个新的浏览器实例,可以使用 robot.launch(config)。例如:

这个例子表示启动一个名为 chromium 的浏览器实例。

robot.action(action)

需要进行一些重复性的工作时,可以使用 action 函数。例如:

这个例子表示点击页面中所有名为 .button 的按钮。

robot.end(function())

定义结束时的操作,比如结束会话。

robot.tearDown(function())

定义当错误发生时要执行的操作。

完整示例

下面是一个完整的 webrobot 示例:

-- -------------------- ---- -------
----- - ------ - - --------------------

--------
    ---------------- -
        --------- -----
        ----- ---------------------------
    -
--
----------- ---- -- -
    ----- ------------------------------------
    ----- --------- - ----- -------------
    -----------------------
    ------ -----
--
----------- ---- -- -
    ----- ------------- - ----- --------------
    ----- -------------------------------

    ----- --------- - ----- --------------
    ----- ------------------
    ------ -----
--
------- ------------- ---- --
----------- ---- -- -
    ----- ----------------- ----- --------------------- --------- ---- ---
--
---------- -- -- -
    ---------------------
---

在这个示例中,我们打开了百度首页,向搜索框中输入了关键字“webrobot”,并单击搜索按钮进行搜索,程序等待 5 秒钟,然后将搜索结果截图并保存到 search-results.png 文件中。最后程序结束,打印一条“会话已结束”的消息。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671058dd3466f61ffdd56

纠错
反馈