0

我有一个简单的用例。在 android 应用程序中,按一个按钮,浏览器应用程序将打开一个 URL。

将出现“打开方式”对话框,允许您选择浏览器或 Chrome。

Android 弹出窗口:打开方式

在 appium 检查器中看起来像这样:

<android.widget.ListView resource-id="android:id/resolver_list">
    <android.widget.LinearLayout>
        <android.widget.ImageView resource-id="android:id/icon">
        <android.widget.LinearLayout>
            <android.widget.TextView resource-id="android:id/text1">
    <android.widget.LinearLayout>
        <android.widget.ImageView resource-id="android:id/icon">
        <android.widget.LinearLayout>
            <android.widget.TextView resource-id="android:id/text1">

尝试自动化这似乎应该是微不足道的,但却给我带来了麻烦。我可以将“Browser”和“Chrome”的文本作为离散AndroidElement的,但我似乎无法实际按下实际选项。

我是否可以实际与这些东西进行交互,或者这是不可能的,因为它是 android 系统本身的一部分?

为了帮助解决这个问题,这里是我的页面对象的设置。

@AndroidFindBy(id = "android:id/resolver_list")
private AndroidElement listParentElement;

public List<OpenWithOption> getOptions() {
    /* ... */
    List<MobileElement> elements = listParentElement
            .findElementsById(SYS_ID_PREFIX + "text1"); // Here's where I can only get the text element itself but can't figure out how to get the elements above that.
    return elements.stream()
            .map(mobileElement -> new OpenWithOptionImpl(mobileElement.getText(), mobileElement))
            .collect(toList());
}
4

1 回答 1

0

这是一个菜鸟的错误。选择浏览器会在屏幕底部启用“仅一次”或“始终”的选择,我没有注意到。我认为只需按下您想要的浏览器即可启动它。

在此处输入图像描述

于 2017-10-09T19:26:36.973 回答