2014-07-23 56 views
4

我有一个批处理文件,它启动使用IEDriverServer的Selenium脚本(用Java编写)。当我从命令行运行该批处理文件时,该脚本按预期工作。然而,当我使用Windows任务计划程序运行完全相同的批处理文件,一个WebDriverWait期间脚本超时,直到声明:Selenium - 使用Windows任务计划程序与命令行

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

我发现这个堆栈溢出职位:

Selenium runs as scheduled task on Windows Server

这表明将作业设置为“运行用户是否已登录”可以解决问题,但我已经设置了该作业。

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

还值得注意的是,使用任务计划程序时,每次击键时sendKeys方法大约需要5秒,而不是直接运行批处理文件时。

如何让Selenium使用Task Scheduler的行为与从命令行运行时的行为相同?

附加信息

  • 的Windows Server 2008 R2
  • IEDriverServer版本2.42.0
  • 硒Java版本2.42.2

回答

0

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

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

下面是如何实现这一目标的简短描述:

  1. 创建新任务
  2. 设定的时间表
  3. 在常规选项卡,使用“运行用户是否登录或不”会很棒。
  4. 去操作,单击新建和使用有些设置是这样的:

enter image description here

  • 在条件编​​辑电源选项(也可以选择网络设置如果你想)
  • enter image description here

  • 另外,做求索[R更新设置以及
  • enter image description here

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

    希望这有些帮助:)

    相关问题