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)

windows处理PHP定时任务

Jenkins任务执行selenium脚本无法启动浏览器

为啥 Windows 8.1 加速计 API 在设备静止时不输出数据?

selenium借助AutoIt识别上传(下载)详解