`
<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>
`我正在尝试使用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();
请帮助我。预先感谢。
答案 0 :(得分:0)
如果您可以发布您要查找并单击的元素的源代码,则将很有帮助。但是,我可以猜测一下。
driver.findElementByClassName("android.widget.ImageButton");
您在这里忘记了.click()
吗?
driver.findElementByAccessibilityId("Open navigation drawer").click();
driver.findElementById("Open navigation drawer").click();
您确定Open navigation drawer
是此元素的ID。似乎是根据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
;并且您没有犯上述错误。