java - 如何修复 "Can' t 通过此策略定位元素 : Locator map:"

标签 java android appium

无法通过此策略定位元素:
定位器 map : - 原生内容:“By.xpath://android.widget.ImageView[id='toolbar_search_place']” - html 内容:“按 id 或名称“ClkSearchicon””

我添加了 XML:

<?xml version="1.0" encoding="UTF-8"?><hierarchy rotation="0"><android.widget.FrameLayout index="0" text="" class="android.widget.FrameLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][720,1184]" resource-id="" instance="0"><android.widget.LinearLayout index="0" text="" class="android.widget.LinearLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][720,1184]" resource-id="" instance="0"><android.widget.FrameLayout index="0" text="" class="android.widget.FrameLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][720,1184]" resource-id="" instance="1"><android.widget.LinearLayout index="0" text="" class="android.widget.LinearLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][720,1184]" resource-id="com.senrysa.veiculu:id/action_bar_root" instance="1"><android.widget.FrameLayout index="0" text="" class="android.widget.FrameLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][720,1184]" resource-id="android:id/content" instance="2"><android.support.v4.widget.DrawerLayout index="0" text="" class="android.support.v4.widget.DrawerLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][720,1184]" resource-id="com.senrysa.veiculu:id/drawer_layout" instance="0"><android.widget.FrameLayout index="0" text="" class="android.widget.FrameLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][720,1184]" resource-id="" instance="3"><android.widget.RelativeLayout index="0" text="" class="android.widget.RelativeLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][720,1184]" resource-id="com.senrysa.veiculu:id/frame_container1" instance="0"><android.widget.LinearLayout index="0" text="" class="android.widget.LinearLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][720,1184]" resource-id="" instance="2"><android.widget.LinearLayout NAF="true" index="0" text="" class="android.widget.LinearLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,904][720,1184]" resource-id="com.senrysa.veiculu:id/ll_radious" instance="3"><android.widget.FrameLayout index="0" text="" class="android.widget.FrameLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,904][720,1184]" resource-id="" instance="4"><android.widget.SeekBar index="0" text="" class="android.widget.SeekBar" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,904][720,1028]" resource-id="com.senrysa.veiculu:id/range" instance="0"/><android.widget.LinearLayout index="1" text="" class="android.widget.LinearLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,1044][720,1184]" resource-id="" instance="4"><android.widget.FrameLayout index="0" text="" class="android.widget.FrameLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,1044][132,1164]" resource-id="" instance="5"><android.widget.ImageView index="0" text="" class="android.widget.ImageView" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[6,1044][126,1164]" resource-id="com.senrysa.veiculu:id/rd_seltct_marker_one" instance="0"/></android.widget.FrameLayout><android.view.View index="1" text="" class="android.view.View" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[132,1044][150,1184]" resource-id="" instance="0"/><android.widget.FrameLayout index="2" text="" class="android.widget.FrameLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[150,1044][282,1164]" resource-id="" instance="6"><android.widget.ImageView NAF="true" index="0" text="" class="android.widget.ImageView" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[156,1044][276,1164]" resource-id="com.senrysa.veiculu:id/rd_marker_two" instance="1"/></android.widget.FrameLayout><android.view.View index="3" text="" class="android.view.View" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[282,1044][300,1184]" resource-id="" instance="1"/><android.widget.FrameLayout index="4" text="" class="android.widget.FrameLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[300,1044][432,1164]" resource-id="" instance="7"><android.widget.ImageView NAF="true" index="0" text="" class="android.widget.ImageView" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[306,1044][426,1164]" resource-id="com.senrysa.veiculu:id/rd_marker_three" instance="2"/></android.widget.FrameLayout><android.view.View index="5" text="" class="android.view.View" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[432,1044][450,1184]" resource-id="" instance="2"/><android.widget.FrameLayout index="6" text="" class="android.widget.FrameLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[450,1044][582,1164]" resource-id="" instance="8"><android.widget.ImageView NAF="true" index="0" text="" class="android.widget.ImageView" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[456,1044][576,1164]" resource-id="com.senrysa.veiculu:id/rd_marker_four" instance="3"/></android.widget.FrameLayout><android.view.View index="7" text="" class="android.view.View" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[582,1044][600,1184]" resource-id="" instance="3"/><android.widget.FrameLayout index="8" text="" class="android.widget.FrameLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[600,1044][720,1164]" resource-id="" instance="9"><android.widget.ImageView NAF="true" index="0" text="" class="android.widget.ImageView" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[600,1044][720,1164]" resource-id="com.senrysa.veiculu:id/rd_marker_five" instance="4"/></android.widget.FrameLayout></android.widget.LinearLayout></android.widget.FrameLayout></android.widget.LinearLayout></android.widget.LinearLayout></android.widget.RelativeLayout><android.widget.RelativeLayout index="1" text="" class="android.widget.RelativeLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][720,1184]" resource-id="com.senrysa.veiculu:id/frame_container" instance="1"><android.widget.RelativeLayout index="0" text="" class="android.widget.RelativeLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][720,1184]" resource-id="" instance="2"><android.widget.RelativeLayout index="0" text="" class="android.widget.RelativeLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][720,1184]" resource-id="" instance="3"><android.widget.LinearLayout index="0" text="" class="android.widget.LinearLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][720,1184]" resource-id="com.senrysa.veiculu:id/rlUpperlayout" instance="5"><android.widget.FrameLayout index="0" text="" class="android.widget.FrameLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][720,1184]" resource-id="" instance="10"><android.widget.FrameLayout index="0" text="" class="android.widget.FrameLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][720,1184]" resource-id="com.senrysa.veiculu:id/mapView" instance="11"><android.widget.FrameLayout index="0" text="" class="android.widget.FrameLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][720,1184]" resource-id="" instance="12"><android.widget.RelativeLayout index="0" text="" class="android.widget.RelativeLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][720,1184]" resource-id="" instance="4"><android.widget.ImageView index="0" text="" class="android.widget.ImageView" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[10,1130][130,1174]" resource-id="" instance="5"/></android.widget.RelativeLayout><android.view.View index="1" text="" class="android.view.View" package="com.senrysa.veiculu" content-desc="Google Map" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][720,1184]" resource-id="" instance="4"><android.view.View index="0" text="" class="android.view.View" package="com.senrysa.veiculu" content-desc="0." checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[256,676][336,776]" resource-id="" instance="5"/></android.view.View><android.widget.RelativeLayout index="2" text="" class="android.widget.RelativeLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][720,1184]" resource-id="" instance="5"/></android.widget.FrameLayout></android.widget.FrameLayout><android.widget.LinearLayout index="1" text="" class="android.widget.LinearLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[312,508][408,604]" resource-id="com.senrysa.veiculu:id/locationMarker" instance="6"><android.widget.ImageView index="0" text="" class="android.widget.ImageView" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[312,508][408,604]" resource-id="com.senrysa.veiculu:id/imageView_center" instance="6"/></android.widget.LinearLayout><android.widget.ImageButton index="2" text="" class="android.widget.ImageButton" package="com.senrysa.veiculu" content-desc="My Location" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[648,580][720,652]" resource-id="com.senrysa.veiculu:id/myMapLocationButton" instance="0"/></android.widget.FrameLayout></android.widget.LinearLayout></android.widget.RelativeLayout></android.widget.RelativeLayout></android.widget.RelativeLayout><android.view.ViewGroup index="2" text="" class="android.view.ViewGroup" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][720,160]" resource-id="com.senrysa.veiculu:id/toolbar" instance="0"><android.widget.ImageButton index="0" text="" class="android.widget.ImageButton" package="com.senrysa.veiculu" content-desc="Navigate up" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][112,160]" resource-id="" instance="1"/><android.widget.LinearLayout index="1" text="" class="android.widget.LinearLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[112,49][720,159]" resource-id="" instance="7"><android.widget.FrameLayout index="0" text="" class="android.widget.FrameLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[112,49][720,159]" resource-id="" instance="13"><android.widget.FrameLayout index="0" text="" class="android.widget.FrameLayout" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[480,49][720,159]" resource-id="" instance="14"><android.widget.ImageView NAF="true" index="0" text="" class="android.widget.ImageView" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[490,59][580,149]" resource-id="com.senrysa.veiculu:id/toolbar_search_place" instance="7"/><android.widget.ImageView NAF="true" index="1" text="" class="android.widget.ImageView" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[620,59][710,149]" resource-id="com.senrysa.veiculu:id/btn_filter1" instance="8"/></android.widget.FrameLayout></android.widget.FrameLayout></android.widget.LinearLayout></android.view.ViewGroup></android.widget.FrameLayout></android.support.v4.widget.DrawerLayout></android.widget.FrameLayout></android.widget.LinearLayout></android.widget.FrameLayout></android.widget.LinearLayout><android.view.View index="1" text="" class="android.view.View" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][720,48]" resource-id="android:id/statusBarBackground" instance="6"/><android.view.View index="2" text="" class="android.view.View" package="com.senrysa.veiculu" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,1184][720,1280]" resource-id="android:id/navigationBarBackground" instance="7"/></android.widget.FrameLayout></hierarchy> 

最佳答案

如果您仅通过 ID 值查找,正确的解决方案应如下: By.id("toolbar_search_place")

如果您使用resource-id属性,那么您必须匹配页面元素 XML 中的精确值,例如By.xpath("//android.widget.ImageView[@resource-id='<resource_id_value>']")

注意! resource-id =/= id

更新!

因此,在这个特定的 XML 情况下,您的 xpath 应如下所示:

By.xpath("//android.widget.ImageView[@resource-id='com.senrysa.veiculu:id/toolbar_search_place']")

有关 XPath 的更多信息:W3schools XML and XPath

关于java - 如何修复 "Can' t 通过此策略定位元素 : Locator map:",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40418628/

相关文章:

IOS 模拟器意外退出 Xcode 10.1

java - 无法从 Object 转换为 char

java - JSF 不更新变量

java - 在 JEasyOpc 中请求订阅

android - Cordova 签名 Android 应用程序 : not working with build. json

java - 用于聊天应用程序的 Google App Engine 和 Android 中的 XMPP

java - 从 URL 获取文件的 MD5 哈希值

python - 使用 pythonista 通过手机使用 appium 打开应用程序

java - Java 中不使用构建器模式的不可变字段

json - 在 Java 中使用 TestNG 从 JSON 读取测试数据