【问题标题】:Appium iOS kill app without the plist being removedAppium iOS 在不删除 plist 的情况下杀死应用程序
【发布时间】:2015-06-06 08:51:07
【问题描述】:

我正在尝试执行以下步骤: 1. 首次启动应用,查看条款和协议 2. 同意条款和协议 3.杀死应用程序并重新启动 4. 您不应该看到条款和协议

现在,appium 在没有 --no-reset 标志的情况下运行,因为我确实需要在场景之间重置应用程序,但是以下重新启动了删除 plist 的应用程序(就像删除应用程序和重新启动)

sleep(3)
pf_name = $driver.caps['platformName']
pf_ver = $driver.caps['platformVersion']
dev_name = $driver.caps['deviceName']
auto_accept_alert = $driver.caps['autoAcceptAlerts']
app_path = $driver.caps['app']
Appium::Driver.new({ caps: { platformName: pf_name, platformVersion: pf_ver, deviceName: dev_name, autoAcceptAlerts: auto_accept_alert, app: app_path, noReset: true} })
$driver.restart
$driver.close_app
$driver.launch_app

我也尝试了 $driver.close_app 和 $driver.launch_app,但他们做了同样的事情(删除 plist 以及终止应用程序)。

有什么方法可以在不删除 plist 的情况下直接杀死应用程序?

【问题讨论】:

    标签: ios ruby appium


    【解决方案1】:

    我找到了答案。

    这有点像一个全方位的答案。

    1. 标记需要杀死和重新启动而不用某些东西重置的场景,比如@needPlist
    2. 在 hooks.rb 中,在 @needPlist 的 Before 中,调用 Appium::Driver.new 并将 noReset 标志设置为 true。调用 $driver.restart (确保在同一标签的 After 中,调用 Appium::Driver.new 并将 noReset 标志设置为 false,然后再次重新启动驱动程序)
    3. 在步骤定义中,您现在可以调用 $driver.close_app 和 $driver.launch_app 而不会丢失您的 plist

    我认为这应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 2022-12-20
      • 2013-08-05
      • 2012-02-19
      • 2016-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多