我有两个挑战。当它达到50时,我想停止计数器demo page, see example 4,使用普通的javascript并使用iMacros和javascript。
这是我正在使用的javascript。
var start_button = document.getElementById('AutomatoOrphanInput_INPUT_6_tag_DIV_7_tag_DIV_4_tag_BODY_0_tag_HTML_0');
var stop_button = document.getElementById('AutomatoOrphanInput_INPUT_8_tag_DIV_7_tag_DIV_4_tag_BODY_0_tag_HTML_0');
//start_button.click()
var timerId = setInterval(function() {
console.time('session_duration');
var counter = document.getElementById('counter')[0].innerHTML;
if (counter => 50) {
stop_button.click();
clearInterval(timerId);
}
console.timeEnd('session_duration');
}, 200);
在控制台中我得到“Uncaught TypeError innerhtml。无法读取属性”innerHTML“undefined” 我在这里做错了什么?
然后我如何让这个停止功能在iMacros中运行?
我听说使用JS MutationObserver会是一个更好的解决方案,而不是无限循环。我该怎么用?
答案 0 :(得分:0)
Pfff,当你打开一个线程时,总是提到你的FCI(完全配置信息),所有浏览器/版本的许多命令都没有实现(或者被破坏!)... => iMacros for FF v9.0.3 / v8.9.7 ......?,FF51 ......?,OS ......?
但无论如何,这里有一个简单的解决方案,在3行中纯'.iim'(我不做'.js'脚本),这适用于所有浏览器,并且如果你可以轻松转换为JavaScript希望...
它只是使用'!TIMEOUT_STEP'(+相对定位以获得额外的可靠性,甚至不需要):
SET !TIMEOUT_STEP 100
TAG POS=1 TYPE=P ATTR=TXT:timer<SP>has<SP>been<SP>executed<SP>50<SP>times.
TAG POS=R1 TYPE=INPUT:BUTTON ATTR=VALUE:"timer.stop()"
在您的网站上演示完整脚本,缩短为10秒(而不是50)+垂直滚动调整以实现视觉跟随(在v9.0.3 =&gt;'中断!'!ERRORIGNORE'已添加以使脚本符合V9.0.3标准):< / p>
VERSION BUILD=8820413 RECORDER=FX
SET !ERRORIGNORE YES
URL GOTO=http://www.jqueryscript.net/demo/Multifunctional-jQuery-Countdown-Stopwatch-Plugin-Timer-js/
URL GOTO=javascript:window.scrollBy(0,680)
SET !TIMEOUT_STEP 100
TAG POS=1 TYPE=P ATTR=TXT:timer<SP>has<SP>been<SP>executed<SP>10<SP>times.
TAG POS=R1 TYPE=INPUT:BUTTON ATTR=VALUE:"timer.stop()"
URL GOTO=javascript:window.scrollBy(0,-190)
(您可能需要调整屏幕/分辨率等的滚动值...)
(在iMacros for FF v8.8.2,PM v26.3.3(= FF47),Win10-x64上测试过。)