警报对话框按钮的内容描述

时间:2019-06-17 11:42:11

标签: android automation appium

我正在显示如下的AlertDialog:

private void showAlertDialog(String message){
    new AlertDialog.Builder(MainActivity.this)
        .setMessage(message)
        .setPositiveButton(android.R.string.ok, null)
        .show();
}

我想运行自动化测试,该测试在android:contentDescription上中继以读取值。

是否可以从内置警报对话框的正负按钮添加/获取此参数?

2 个答案:

答案 0 :(得分:1)

alert_dialog.xml上检查文件ANDROID_HOME/platforms/android-28/data/res/layout,我可以看到常规/标准中的按钮,AlertDialog的定义如下:

<Button android:id="@+id/button1"
    android:layout_width="0dip"
    android:layout_gravity="start"
    android:layout_weight="1"
    ... />
<Button android:id="@+id/button3"
    android:layout_width="0dip"
    android:layout_gravity="center_horizontal"
    android:layout_weight="1"
    ... />
<Button android:id="@+id/button2"
    android:layout_width="0dip"
    android:layout_gravity="end"
    android:layout_weight="1"
    ... />

然后,您可以搜索这些视图并按以下方式获取其内容:

AlertDialog alert = builder.create();
alert.findViewById(android.R.id.button1);

编辑

@ADM在评论中提到,您可以轻松运行以下代码:

  

您可以通过alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).setContentDescription("positive");

进行设置

更简单,更简单。而且您不必依赖View ID。.非常好(也是最好的)解决方案!

答案 1 :(得分:1)

我已经在评论中回答过,“只是为了用可接受的答案来结束问题...

您可以使用#alertDialog.getButton()获得Dialog的操作按钮...在这种情况下,您可以使用:-

alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).setContentDescription("positive");
alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE).setContentDescription("negative");