selenium – 使用Windows任务计划程序与命令行

我有一个batch file,它启动了使用IEDriverServer的Selenium脚本(用Java编写)。 当我从命令行运行该batch file时,该脚本按预期工作。 但是,当我使用Windows任务计划程序运行完全相同的batch file时,脚本在WebDriverWait until语句中超时:

(new WebDriverWait(driver, JAVASCRIPT_TIMEOUT_SECONDS)).until(new ExpectedCondition<Boolean>() { public Boolean apply(WebDriver d) { return d.getTitle().equals(BROWSE_PAGE_TITLE); } }); 

我发现这个堆栈溢出后:

Selenium在Windows Server上按计划运行

这表明将作业设置为“运行用户是否login”可以解决问题,但我已经有了这样的工作。

我已经尝试了IEDriverServer的32位和64位版本。

值得一提的是sendKeys方法在使用任务计划程序时每次击键约需5秒钟,而不是直接运行batch file时。

我如何让Selenium像使用命令行一样使用Task Scheduler来执行相同的操作?

附加信息

  • Windows Server 2008 R2
  • IEDriverServer版本2.42.0
  • Selenium Java版本2.42.2

下面是一个建议,创建一个可执行的jar文件(右键单击你的项目并导出为可执行jar),然后尝试直接运行。 我从来没有面对任何性能问题。

另外,请确保您的网络连接稳定,您可以在任务运行之前使用“网络”选项卡进行这些设置。

这里是如何实现这个简短的描述:

  1. 创建一个新的任务
  2. 设置时间表
  3. 在常规选项卡中,使用“运行用户是否登录”将会很好。
  4. 转到操作,点击新建和使用设置有点像这样:

在这里输入图像说明

  1. 在条件中编辑电源选项(如果需要,也可以选择网络设置)

在这里输入图像说明

  1. 另外,请考虑更新设置

在这里输入图像说明

保存任务,右键单击任务并运行它来检查它是否正常工作。

希望这个对你有帮助 :)