无法点击汉堡菜单

时间:2019-06-07 10:22:27

标签: java android appium appium-android hamburger-menu

`

<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.我正在尝试使用Appium测试包含汉堡菜单的android应用。我尝试通过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 :(得分:0)

如果您可以发布您要查找并单击的元素的源代码,则将很有帮助。但是,我可以猜测一下。

  1. driver.findElementByClassName("android.widget.ImageButton");您在这里忘记了.click()吗?

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

    您确定Open navigation drawer是此元素的ID。似乎是根据content-desc

  3. driver.findElementByXPath("//android.widget.ImageButton[@content-desc='Open navigation drawer']").click();属性的值

根据http://appium.io/docs/en/commands/element/find-elements/,由于性能问题,应避免选择XPath。

再次检查您是否拥有正确的IDAccessibility ID;并且您没有犯上述错误。