Selenium - 使用 Windows 任务计划程序与命令行
Posted
技术标签:
【中文标题】Selenium - 使用 Windows 任务计划程序与命令行【英文标题】:Selenium - Using Windows Task Scheduler vs. command line 【发布时间】:2014-09-15 05:14:25 【问题描述】:我有一个启动我的 Selenium 脚本(用 Java 编写)的批处理文件,它使用 IEDriverServer。当我从命令行运行该批处理文件时,脚本按预期工作。但是,当我使用 Windows 任务计划程序运行完全相同的批处理文件时,脚本在 WebDriverWait until 语句期间超时:
(new WebDriverWait(driver, javascript_TIMEOUT_SECONDS)).until(new ExpectedCondition<Boolean>()
public Boolean apply(WebDriver d)
return d.getTitle().equals(BROWSE_PAGE_TITLE);
);
我发现了这篇 Stack Overflow 帖子:
Selenium runs as scheduled task on Windows Server
这表明将作业设置为“无论用户是否登录都运行”可以解决问题,但我已经以这种方式设置了作业。
我已经尝试过 32 位和 64 位版本的 IEDriverServer。
还值得注意的是,使用任务计划程序时,sendKeys 方法每次击键大约需要 5 秒,但在直接运行批处理文件时不会。
如何让 Selenium 在使用任务计划程序时以与从命令行运行时相同的方式运行?
其他信息:
Windows Server 2008 R2 IEDriverServer 2.42.0 版 Selenium Java 版本 2.42.2【问题讨论】:
【参考方案1】:这里有一个建议,创建一个可执行的 jar 文件(右键单击您的项目并导出为 Executable Jar)并尝试直接运行它。我从来没有遇到过任何性能问题。
另外,请确保您的互联网连接稳定,您可以在任务运行之前使用“网络”选项卡进行这些设置。
以下是如何实现此目的的简短说明:
-
创建新任务
设置时间表
在“常规”选项卡中,使用“无论用户是否登录都运行”会很棒。
转到操作,点击新建和使用设置有点像这样:
-
在条件中编辑电源选项(如果需要,您也可以选择网络设置)
-
另外,请考虑更新设置
保存任务,右击任务并运行它检查它是否工作正常。
希望对你有所帮助:)
【讨论】:
以上是关于Selenium - 使用 Windows 任务计划程序与命令行的主要内容,如果未能解决你的问题,请参考以下文章
使用 Windows 任务计划程序打开 cmd 文件时执行但不启动服务器
asp.net中调度任务的方式(不写windows scheduler)