试图返回聊天室中的用户列表。该HTML看起来像:如何在AppleScript中使用JavaScript来返回聊天室中的用户列表
<div class="users-list" style="height: 475px; display: block;">
一个可扩展到这一点:
<div class="text" data-nick style="float:right">...</div>
<div class="text" data-nick="user1">...</div>
<div class="text" data-nick="user2">...</div>
<div class="text" data-nick="user3">...</div>
<div class="text" data-nick="user4">...</div>
使用谷歌浏览器的JavaScript控制台,我做的:
document.body.querySelector("div.users-list")
它返回原来未发泡的HTML:
<div class="users-list" style="height: 475px; display: block;">
有一个下拉箭头,返回用户列表中的JavaScript控制台扩展此:
<div class="text" data-nick style="float:right">...</div>
<div class="text" data-nick="user1">...</div>
<div class="text" data-nick="user2">...</div>
<div class="text" data-nick="user3">...</div>
<div class="text" data-nick="user4">...</div>
我想要做的是用户列表写入一个文本文件中。我试图用猛砸做osascript
此:
osascript -e \
'tell application "Google_Chrome"
tell window 1
tell active tab
execute javascript "document.body.querySelector(\"div.users-list\")"
end tell
end tell
end tell'
但是,当我在终端运行这个它返回一个空行。当我在脚本编辑器中将它作为AppleScript运行时,它只返回{}
如何使用AppleScript/osascript中的javascript "document.body.querySelector(\"div.users-list\")"
返回使用Google Chrome中的JavaScript控制台返回的相同扩展用户列表?
使用' “document.body.querySelector(\” div.users-list \“)。innerHTML”'现在产生输出。但是,它似乎是一个长串。有没有一种方法可以将输出保持为列表形式? –
@ I0_ol你能输出一个Javascript数组吗?如果你执行''执行javascript'[\“a \”,\“b \”]“'会发生什么?如果是,那么我会以某种方式利用Javascript ['Array.prototype.map'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)函数,将每个节点映射为一个字符串。 –
执行javascript的输出是'a,b' –