节点分别具有用于评估和评估打印的-e和-p标志.我知道有一个用于Chrome无头的--repl标志,但我想知道是否也有一种计算和打印表达式的方法,例如:
$ chrome --headless --eval-and-print 'navigator.hardwareConcurrency'发布于 2019-04-12 21:57:42
显然,它接受从stdin中读取,所以这个可怕的“工作”:
$ echo -e 'navigator.hardwareConcurrency\nquit\n' | chrome --headless --repl
[0412/235456.154837:ERROR:gpu_process_transport_factory.cc(980)] Lost UI shared context.
[0412/235456.214132:INFO:headless_shell.cc(370)] Type a Javascript expression to evaluate or "quit" to exit.
>>> {"result":{"description":"8","type":"number","value":8}}
>>> 所以,有更多可怕的黑客和jq
$ echo -e 'navigator.hardwareConcurrency\nquit\n' | chrome --headless --repl 2>&1 | grep '^>>> {"result":' | cut -c4- | jq -r .result.description
8发布于 2019-04-13 00:43:47
无头模式目前只支持:
如果您不想使用交互模式或其周围的包装器之一,并且实际上不需要导航到页面,则可以使用data: url提供javascript并从dump-dom获取输出,例如:
chromium --headless --dump-dom 'data:text/html,<script>document.head.innerHTML="<code>\n"+navigator.hardwareConcurrency+"\n</code>"</script>' | grep -v 'code>'
https://stackoverflow.com/questions/51241839
复制相似问题