Appium:处理android系统交互

时间:2017-10-09 17:36:54

标签: appium appium-android

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

"打开"出现对话框弹出窗口,允许您选择浏览器或Chrome。

Android Popup: Open with

在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">

尝试自动化这似乎应该是微不足道的,但却给我带来了麻烦。我可以得到&#34;浏览器&#34;和&#34; Chrome&#34;作为离散AndroidElement s,但我似乎无法实际按下实际选项。

我是否可以实际与这些事物进行互动,或者这是不可能的,因为它是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());
}

1 个答案:

答案 0 :(得分:0)

这是一个菜鸟的错误。选择浏览器可以选择&#34; Just Once&#34;或&#34;始终&#34;在屏幕的底部,我没有注意到。我认为只需按下您想要的浏览器即可启动它。

enter image description here