问题描述
我正在执行一个自动化操作,从一个网页中提取数据,打开另一个网页,然后使用 Javascript 在第二个网页上填写表单。
在我需要将自动化器工作流程中先前操作的输出传递给 Javascript 的输入之前,我已经完成了所有工作。此外,如果我只使用随机字符串而不是输入数组,Javascript 将填写表单。所以这让我相信出于某种原因,“输入”参数没有接收到之前工作流操作的输出。
Automator 模块如下; 使用 Applescript 抓取数据> 使用 Applescript 打开新网页 > 使用 JS 填写表单。
我的JS如下;
function run(input,parameters) {
// Sleep Function
function sleep(milliseconds) {
const date = Date.Now();
let currentDate = null;
do {
currentDate = Date.Now();
} while (currentDate - date < milliseconds);
}
// Wait 2 secs for page to load
sleep(2000);
//Define my input variable
var eventData = '';
var eventData = input;
// Set Application to Safari
var safari = Application("Safari");
safari.includeStandardAdditions = true;
//Define where to fill data
var fillForm = "";
fillForm += "document.getElementById('532689310259199').value = eventData[0];";
fillForm += "document.getElementById('296917710661947').value = eventData[2];";
fillForm += "document.getElementsByClassName('_3smp')[0].value = eventData[1];";
fillForm += "document.getElementById('837532203444414').value = eventData[6];";
fillForm += "document.getElementById('2009727289097015').value = eventData[5];";
// Execute
safari.doJavaScript(fillForm,{ in: safari.windows[0].currentTab });
return eventData
}
如果我返回 eventData - []
如果我返回输入 - []
如果我返回 fillForm - document.getElementById('532689310259199').value = eventData[0];document.getElementById('296917710661947').value = eventData[2];document.getElementsByClassName('_3smp')[0 ].value = eventData[1];document.getElementById('837532203444414').value = eventData[6];document.getElementById('2009727289097015').value = eventData[5];
我绝对肯定这是一件非常简单的事情,但我是自动化的新手,而且它的文档......缺乏
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)