【问题标题】:Running selenium bash script from an osx daemon从 osx 守护进程运行 selenium bash 脚本
【发布时间】:2014-09-05 22:15:41
【问题描述】:

我创建了一个 bash 文件,它将开始使用 selenium 在 Safari 中测试我的网站。我想每天晚上 5:55 发生实例。为此,我在 /System/Library/LaunchDaemons 中创建了一个守护进程。出于某种原因,我从来没有看到 bash 脚本启动我的 selenium 代码。我想知道是否有人有这方面的经验?当我运行我的 selenium bash 脚本时,safari 将打开,我的自动化测试将运行良好。我只是有点困惑,为什么从守护进程调用 bash 脚本时没有发生同样的事情。我已经使用 launchctl 启动了守护进程。

runselenium.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">;
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>com.runselenium.daemon</string>

        <key>ProgramArguments</key>
        <array>
                <string>bash</string>
                <string>/Users/admin/Desktop/workspace/runSelenium.bash</string>
        </array>

        <key>StartCalendarInterval</key>
        <dict>
                <key>Hour</key>
                <integer>17</integer>
                <key>Minute</key>
                <integer>55</integer>
        </dict>
</dict>
</plist>

runSelenium.bash

#!/bin/bash

source /Users/admin/Desktop/workspace/set-selenium-classpath.bash

java  selenium.Main

我在控制台中看到的当前错误是 com.apple.launchd: (com.runselenium.daemon[479]) Exited with code: 1

【问题讨论】:

    标签: linux macos selenium daemon


    【解决方案1】:

    守护进程不使用您的环境设置,特别是您的用户 PATH。确保您的脚本明确定义了所有内容:PATH(或仅使用全局路径)、变量等。如果这不起作用,请发布您的脚本和任何错误。

    【讨论】:

    • 我在上面发布了 bash 文件。在 bash 文件 runSelenium 中,我调用另一个已设置的 bash 文件来定义类路径。我在控制台中看到的当前错误是 com.apple.launchd: (com.runselenium.daemon[479]) Exited with code: 1
    • 就像我说的:你不知道当前的环境是什么。你怎么知道./ 会在哪里?明确设置所有内容,或对所有内容使用全局路径。在脚本中添加额外的回显消息以查看发生了什么。
    • 啊,好吧,我明白了。我会试一试。谢谢。
    • 我已经更新了 bash 脚本,但仍然遇到同样的问题。我将假设它是java程序调用。知道如何指定 Main 时的完整文件路径吗?
    • java &lt;package.name&gt;.&lt;class.name&gt;?
    猜你喜欢
    • 2013-10-14
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多