背景
使用Appium Inspector打开某款APP后,该app总是跳入到登录界面,导致Appium Inspector无法截图,从而使得无法使用Appium Inspector进行元素定位
错误信息:
无法获取屏幕截图: unable to capture screen: Failed to capture a screenshot. Does the current view have 'secure' flag set?
解决办法
我目前的解决办法,是直接读取该页的xml,然后在编辑软件中,手动去查找需要点击的元素,比如我在实验的时候就发现某宝的app也有这个现象,我不想进行登录,想直接关闭登录界面,我就在xml中找到了返回的标签元素,最后发现,只影响Appium Inspector去截图查找元素,但不影响appium server去查找这个元素,所有只要找到目标元素的路径就可以点击。
self.driver.page_source#获取xml 使用的是python
某宝的登录界面的xml:最后我手动的发现了关闭登录的标签:哎只有这种笨办法了,好在该页需要触发的元素不多就一个关闭。
close_login = "//android.widget.ImageButton[@content-desc='返回']"
clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,117][1080,2239]" displayed="true">
<android.widget.FrameLayout index="0" package="com.taobao.taobao" class="android.widget.FrameLayout" text="" resource-id="android:id/content" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,117][1080,2239]" displayed="true">
<android.widget.LinearLayout index="0" package="com.taobao.taobao" class="android.widget.LinearLayout" text="" resource-id="com.taobao.taobao:id/aliuser_main_content" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,117][1080,2239]" displayed="true">
<android.view.ViewGroup index="0" package="com.taobao.taobao" class="android.view.ViewGroup" text="" resource-id="com.taobao.taobao:id/aliuser_toolbar" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,117][1080,238]" displayed="true">
<android.widget.ImageButton index="0" package="com.taobao.taobao" class="android.widget.ImageButton" text="" content-desc="返回" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,117][154,238]" displayed="true" />
</android.view.ViewGroup>
<android.widget.FrameLayout index="1" package="com.taobao.taobao" class="android.widget.FrameLayout" text="" resource-id="com.taobao.taobao:id/aliuser_content" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,238][1080,2239]" displayed="true">
<android.widget.FrameLayout index="0" package="com.taobao.taobao" class="android.widget.FrameLayout" text="" resource-id="com.taobao.taobao:id/aliuser_content_frame" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,238][1080,2239]" displayed="true">
<android.widget.RelativeLayout index="0" package="com.taobao.taobao" class="android.widget.RelativeLayout" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,238][1080,2239]" displayed="true">
<android.widget.LinearLayout index="0" package="com.taobao.taobao" class="android.widget.LinearLayout" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,238][1080,1155]" displayed="true">
<android.widget.TextView index="0" package="com.taobao.taobao" class="android.widget.TextView" text="亲,欢迎登录" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[55,414][553,525]" displayed="true" />