Не могу нажать на меню гамбургера - PullRequest
0 голосов
/ 07 июня 2019

`

<android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@drawable/nav_gradient"
        android:fitsSystemWindows="true"
        android:paddingEnd="10dp"
        android:paddingStart="20dp"
        android:paddingTop="30dp"
        android:theme="@style/AppTheme.NavigationTheme"
        app:itemBackground="@android:color/transparent"
        app:itemIconTint="@color/drawer_item"
        app:itemTextColor="@color/drawer_item"
        app:menu="@menu/activity_home_drawer">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|center"
            android:orientation="horizontal"
            android:paddingBottom="20dp">

            <ImageView
                android:id="@+id/iv_toolbar_image"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom"
                android:scaleType="fitCenter"
                android:src="@drawable/logoimg" />

            <TextView
                android:id="@+id/tv_toolbar_label"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom"
                android:layout_marginStart="10dp"
                android:maxLines="1"
                android:textColor="@android:color/white"
                android:textSize="12sp"
                android:textStyle="bold" />

        </LinearLayout>

    </android.support.design.widget.NavigationView>

` Here is the Appium screenshot to find layout element ids. Я пытаюсь протестировать приложение для Android, которое содержит меню гамбургеров, используя Appium.Я попытался найти с помощью Xpath, id, accessibilityId & className.Все не работают.

Вот как я инициализирую драйвер.

driver = new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), capability);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.findElementByAccessibilityId("Open navigation drawer").click();
driver.findElementById("Open navigation drawer").click();
driver.findElementByXPath("//android.widget.ImageButton[@content-desc='Open navigation drawer']").click();
driver.findElementByClassName("android.widget.ImageButton").click();

Пожалуйста, помогите мне в этом.Заранее спасибо.

1 Ответ

0 голосов
/ 07 июня 2019

Если бы вы могли опубликовать исходный код элемента, который вы пытаетесь найти, и нажать на него, это было бы полезно.Тем не менее, я могу сделать некоторые предположения.

  1. driver.findElementByClassName("android.widget.ImageButton"); Вы забыли .click() здесь?

  2. driver.findElementByAccessibilityId("Open navigation drawer").click(); driver.findElementById("Open navigation drawer").click();

    Вы уверены, что Open navigation drawer является идентификатором этого элемента.Кажется, это значение атрибута content-desc в соответствии с driver.findElementByXPath("//android.widget.ImageButton[@content-desc='Open navigation drawer']").click();

В соответствии с http://appium.io/docs/en/commands/element/find-elements/, следует избегать выбора XPath из-за проблем с производительностью.

Дважды проверьте, что у вас есть правильные ID и Accessibility ID;и вы не делаете ошибку, как описано выше.

...