Selenium - 使用Windows任务计划程序与命令行

时间:2014-07-23 20:27:53

标签: java windows selenium-webdriver scheduled-tasks

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

(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

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

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

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

如何使用任务计划程序使Selenium的行为与从命令行运行时的行为相同?

其他信息

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

1 个答案:

答案 0 :(得分:0)

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

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

以下是如何实现此目的的简短说明:

  1. 创建新任务
  2. 设置计划
  3. 在“常规”选项卡中,使用&#34;运行用户是否已登录&#34;会很棒。
  4. 转到“操作”,单击“新建”和“使用”设置,如下所示:
  5. enter image description here

    1. 在条件中编辑电源选项(如果需要,还可以选择网络设置)
    2. enter image description here

      1. 另外,请考虑更新设置
      2. enter image description here

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

        希望这有一些帮助:)