我想运行一个
计时器
在 selenium webdriver 中,我不想使用多线程,并且计时器不能阻塞(如 js 中的 setInterval),现在我不知道。
例如:每 10 秒检查一个元素类。
如果您使用的是 java,这可能会有所帮助..
for (int i=0;i<10;i++)
{
if(driver.findElement(By.id("id_of_element")).isDisplayed()) //you can also use selector,class name,xpath..etc instead of id
{
break;
}
Thread.sleep(10000);//sleep for 10 secs
}
上面的代码将每 10 秒检查一次元素是否存在,如果发现它就会退出 for 循环......
如果你使用 python,你可以编写一个简单的脚本,如下所示:
#!/usr/bin/python
# filename:scheduler.py
#encoding:utf-8
import time
def scheduler():
while True:
# to something here
print 'hello world'
time.sleep(10)
if __name__ == '__main__':
scheduler()
运行:python scheduler.py
如果您的 selenium 脚本仅包含检查元素类,那么您可以将 selenium 脚本作为 cronjob 执行,即,将 java 类作为 cron 任务运行。或者你可以选择 java.util 下的 TimerTask。Quartz 也是一个不错的调度器。
cron 作业的链接:
如何配置 cron 作业
将 java 程序作为 cron 作业运行
Cron 作业示例
TimerTask 链接:
定时器任务
石英链接:
石英教程
事件尽管您当前的范围是特定的,但您可以考虑使用上述方法来安排您的自动化测试套件在特定时间间隔后运行。实现夜间自动化的简单方法。