使用Android 4.4.2 Kitkat OS設備的設備沒有顯示唯一標識。下面是我從示例中使用的代碼。Androidviewclient在Android4.4.2上未顯示唯一標識號OS
import sys
import os
# PyDev sets PYTHONPATH, use it
try:
for p in os.environ['PYTHONPATH'].split(':'):
if not p in sys.path:
sys.path.append(p)
except:
pass
try:
sys.path.append(os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))
except:
pass
from com.dtmilano.android.viewclient import ViewClient
ViewClient(*ViewClient.connectToDeviceOrExit(verbose=True)).traverse(transform=ViewClient.TRAVERSE_CIT)
三星OS4.4.2 - 上Nexus5開始觀察到操作系統相同的行爲4.4.2
android.widget.FrameLayout
android.widget.LinearLayout
android.widget.FrameLayout android:id/content
android.widget.FrameLayout com.sec.android.app.launcher:id/animation_layer
android.widget.FrameLayout com.sec.android.app.launcher:id/home_view
android.widget.FrameLayout com.sec.android.app.launcher:id/home_container
android.widget.FrameLayout
android.view.View com.sec.android.app.launcher:id/workspace
android.view.View
android.view.View
android.view.View
android.appwidget.AppWidgetHostView
android.widget.FrameLayout
android.widget.LinearLayout com.google.android.googlequicksearchbox:id/search_plate
android.widget.LinearLayout
LG G2 OS 4.2
android.widget.FrameLayout id/no_id/1
android.widget.LinearLayout id/no_id/2
android.widget.FrameLayout id/no_id/3
android.widget.FrameLayout id/no_id/4
android.widget.FrameLayout id/no_id/5
android.view.View id/no_id/6
android.view.View id/no_id/7
android.view.View id/no_id/8
android.appwidget.AppWidgetHostView id/no_id/9
android.widget.FrameLayout id/no_id/10
android.widget.LinearLayout id/no_id/11
android.widget.LinearLayout id/no_id/12
android.widget.ImageButton id/no_id/13
android.widget.LinearLayout id/no_id/14
android.widget.ImageButton id/no_id/15
android.widget.TextView id/no_id/16 Log Viewer
android.widget.TextView id/no_id/17 CatLog
此外,vc.findViewById('身份證/ tv_search')。type('Donald')不起作用。但ID-'id/no_id/23'在所有設備上工作正常。
請幫我解決這個問題。
我在你的示例中看不到任何帶'id/tv_search'的視圖。解決這些findX()方法問題的一個好的起點是使用'culebra'來生成一個模板腳本。 –
** AndroidViewClient **只能提供'uiautomator dump'給出的id,如果id在某些設備上不存在,那麼您可以信任按照外觀順序分配的**唯一id,並且應該相同同一個應用程序。 –
我的問題是爲什麼我使用相同的腳本獲得兩種不同類型的ID。在kitkat設備上,我獲得了由開發人員在開發應用程序時提供的ID。在4.2.2設備上,我獲取AVC默認ID。 以上是我提到的例子。即id/tv_search是OS 4.4.2上元素的id,id/no_id/23是OS 4.2.2上相同元素的id。 – ASP