【问题标题】:Launch Terminal via Python and run commands通过 Python 启动终端并运行命令
【发布时间】:2018-01-11 03:59:57
【问题描述】:

我正在编写一个自动化脚本,如果能够通过我的 Python 脚本在我的 Mac 上启动 Terminal 以启动 Appium 服务器,而不是手动执行它,那就太好了。

我最接近的是使用以下代码,但这只会启动终端,我无法向它发送命令:

    from subprocess import Popen, PIPE, STDOUT

    Popen(['open', '-a', 'Terminal', '-n'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)

我需要能够启动两个终端实例并运行以下命令

  1. 'appium'
  2. 'appium -a 0.0.0.0 -p 4724'

【问题讨论】:

  • 已删除我的评论并写了一个答案。

标签: python ios macos terminal appium


【解决方案1】:

你可以像这样在python中执行shell命令:

import os

os.system('appium &')

这将启动 Appium 服务器

【讨论】:

  • 终端没有启动,我得到'sh: appium: command not found.'
  • 此方法不会启动终端。这只是执行你的命令。你安装了 appium 吗?
  • Appium 已安装,这会在后台启动 appium 吗?
  • 我希望能够看到 Appium 的输出以进行调试,因此终端需要可见。我可以将它与另一个命令结合使用吗?
  • 这将显示调试输出。无需新的终端标签。
【解决方案2】:

您必须使用communicate 将 cmd 发送到您的终端。

 from subprocess import Popen, PIPE, STDOUT

    p1 = Popen(['open', '-a', 'Terminal', '-n'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
    p2 = Popen(['open', '-a', 'Terminal', '-n'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)

    p1.communicate('appium')
    p2.communicate('appium -a 0.0.0.0 -p 4724')

【讨论】:

  • 没有任何东西被发送到终端窗口。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-23
  • 2012-12-25
  • 2018-12-12
  • 2019-10-21
  • 2020-09-07
  • 2017-01-25
  • 1970-01-01
相关资源
最近更新 更多