gpt4 book ai didi

android - Calabash 测试系统对话框正在显示并与之交互

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:44:34 27 4
gpt4 key购买 nike

我的 android 应用程序项目以编程方式启动系统对话框以安装受信任的 CA 证书:

Intent intent = KeyChain.createInstallIntent();
intent.putExtra(KeyChain.EXTRA_PKCS12, certificate);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

这段代码弹出系统对话框如下图所示: enter image description here

以上内容是关于我的 Android 应用程序项目的。现在,关于测试:

我正在使用 Calabash为我的项目编写自动验收测试。

我知道 Calabash 提供 pre-defined step definitions .但是这些步骤提供了与应用程序的 UI 组件交互的关键字(例如输入文本、按下按钮)。我无法找到如何使用这些预定义的步骤来测试是否显示系统对话框

我的问题:

Q1. 如何使用Calabash预定义的步骤定义来检查系统对话框是否显示?如何在对话框中输入文本?

Q2. 如果Q1的答案是“不可能”,那么,我该如何使用Calabash来测试呢?看起来我需要编写自己的 Ruby 函数来 测试它?如果是这样,如何编写 Ruby 函数来测试正在显示的此系统对话框以及如何与 Calabash 测试中的系统对话框进行交互?

最佳答案

您需要为此编写代码。假设这是一个默认的警告对话框:

如果类型为 AlertDialog 的 View 可见,这将断言。

def check_if_dialog_open
check_element_exists('*AlertDialog')
end

这将在第一个 EditText 中输入一些文本,如果找到并在之后隐藏键盘。

def input_into_dialog(some_text)
enter_text("android.widget.EditText *", some_text)
hide_soft_keyboard
end

然后您可以为此编写自己的步骤:

Then(/^I check if my dialog is open and input some text$/) do
check_if_dialog_open

input_into_dialog('my text')

sleep(STEP_PAUSE)
end

要在该对话框中输入,您可以查询可见的 EditText。

这只是优化您的查询的问题。您可以使用葫芦控制台确认这是否是默认的 Android 的 AlertDialog。

了解有关控制台和查询语法的更多信息 here并查看有关 Ruby API 的更多信息,请转到 here .

关于android - Calabash 测试系统对话框正在显示并与之交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38535001/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com