【问题标题】:Wait for a specific time on a website to start a process等待网站上的特定时间开始进程
【发布时间】:2016-02-07 00:58:51
【问题描述】:

我想在非常特定的时间启动一个进程。

网站有时间指示器:

TAG POS=1 TYPE=FONT ATTR=TXT:2:31:35PM

我需要做的是:

  1. 如果时间是下午 2:45:00,WAIT= 0.2 SECONDS 然后继续宏
  2. 如果没有,请等到下午 2:45:00

任何指导将不胜感激。

Mac OS X. El Capitan 10.11.2 firefox 44.0 TAG POS=1 TYPE=FONT ATTR=TXT:2:31:35PM

【问题讨论】:

  • 我明白了——如果时间在下午 2:45:00 之前,您希望页面保持打开状态并等到合适的时间,然后再等待 0.2 秒,然后触发一个函数?这不仅仅是页面加载时(或之后)2:45:00PM 的时间,然后等待 0.2 秒并触发该功能的情况?
  • 嗨,马库斯。感谢您的反馈意见。我已经能够标记时间,以便它在下午 2:31:25 开始该过程。但是,如果宏在其他部分失败(在命令行下方),我希望能够在宏上再次点击播放。但是,根据定义,它会晚于下午 2:31:25,所以我目前设置的方式要到第二天才能开始!任何建议将不胜感激

标签: javascript eval imacros


【解决方案1】:

最好的方法是将 JavaScript 与 imacros 一起使用,并为元素创建一个时间侦听器来指示时间,如果时间是下午 2:45,则将完成 imacros 代码。

假设时间指示器的 ID="time" 并且它包含像“下午 2:44:54”这样的文本

do {
var time = window.content.document.getElementById("time"); //catch element
time = time.textContent; //get text inside will be " 2:44:54 PM "
time = time.trim();  //remove spaces around text not inside text now text will be "2:44:54 PM"
time = time.replace('PM','');  // case sensitive if it will be pm then add pm now text will be "2:44:54 "
time = time.trim(); // making sure no spaces around my text which will be only "2:44:54" or any thing
if (time =='2:45:00'){
//do your macro code
break;}   // break to exit while loop and continue code >>after while condition
}while(1);
//>>after while condition

请注意,该文件应该是 .js 而不是 .iim 才能在其中执行 JavaScript。 这是一个简单的工具,可以将 imacros 代码转换为 JavaScript 代码Imacros to JavaScript 你可以在JavaScript-iMacros WIKIJavaScript-iMacros WIKI

上阅读更多关于 JavaScript 和 imacros 的内容

【讨论】:

  • window.content.document 将适用于 Firefox 和 JavaScript 解决方案适用于 Firefox 和 Internet Explorer 谷歌浏览器尚不支持。
【解决方案2】:

也许这对你有帮助:

' e.g. one day waiting '
SET !TIMEOUT_STEP 86400
TAG POS=1 TYPE=FONT ATTR=TXT:2:45:00PM

SET !TIMEOUT_STEP 6
WAIT SECONDS=0.2
' your further code '

如果时间大于或等于下午 2:45:00,您可以尝试这样的操作:

SET !TIMEOUT_STEP 53100
SEARCH SOURCE=REGEXP:"2:4[5-9]:\d\dPM|2:5[0-9]:\d\dPM|([3-9]|1[0-2]):\d\d:\d\dPM"

【讨论】:

  • 舒格尔,非常感谢!我已经确定了这部分。我缺少的是(如果代码稍后失败)我希望能够重播宏。因此,例如,它会类似于“如果时间大于或等于下午 2:45:00”感谢您提供任何进一步的反馈!!!
猜你喜欢
  • 1970-01-01
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多