如何使用 Chrome 无头模式延迟捕获 DOM

How to delay capture of DOM using Chrome Headless mode

我在 Windows 10 上使用 Chrome 70 的以下命令行:

chrome --headless --enable-logging --dump-dom http://localhost/test.html

该页面包含以下内容:

<!DOCTYPE html>
<html>
<head>
    <script>
        setTimeout(function () { document.write("This is a test"); }, 10);
    </script>
</head>
<body>
    Content to replace.
</body>
</html>

请注意,我有模拟异步进程来查询数据的脚本。将超时设置为 10 毫秒,Chrome 命令行的页面输出为:

<html><head></head><body>This is a test</body></head></html>

当我将超时增加到 50 或更多时,输出是原始页面。

如何告诉 Chrome 等待异步进程完成以及如何告诉它何时完成?

您可以使用 --virtual-time-budget 参数来指定您愿意等待的时间(以毫秒为单位)。

chrome --headless --enable-logging --dump-dom --virtual-time-budget=10000 http://localhost/test.html