我面臨的問題是uiautomatorviewer中未顯示下拉列表元素。如何挖掘聚焦於appium的元素。無法選擇appium中的下拉列表的值
雖然我具有由屏幕的getPageSource
並且存在還沒有值被暴露表示移動應用屏幕上顯示結果的檢查XML DOM
XML代碼段是如下: -
<android.widget.FrameLayout index="0" text="" class="android.widget.FrameLayout" package="com.demo.pass" 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,145][540,196]" resource-id="com.demo.pass:id/frameSearchLocation" instance="6">
<android.widget.EditText index="0" text="Bryson City" class="android.widget.EditText" package="com.demo.pass" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="true" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[30,145][510,196]" resource-id="com.demo.pass:id/autoCompleteSearchTextView" instance="0" />
<android.widget.ImageView NAF="true" index="1" text="" class="android.widget.ImageView" package="com.demo.pass" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[457,148][502,193]" resource-id="com.demo.pass:id/imgCurrentLocation" instance="0" />
</android.widget.FrameLayout>
在第二個想法中,我嘗試了鍵盤操作。我可以導航到使用下面的代碼
ad.pressKeyCode(20);
但我無法挖掘值。我已經嘗試了大部分的事情。如: -
ad.pressKeyCode(66); // Press Enter
而且
TouchAction action = new TouchAction(ad);
action.perform();
由於沒有存在於DOM爲下拉值沒有定位器,我無法通過在上面的代碼的元素。
至於有名稱框我也嘗試使用下面的代碼進行切換: -
ad.switchTo().frame(ad.findElement(By.xpath("com.demo.pass:id/frameSearchLocation")));
uiautomatorviewer屏幕: -
請建議我應該在這種情況下做的。 任何解決方案/建議將不勝感激。
這是一個混合的應用程序?在這種情況下,可能會使用switchingContext來幫助您找到元素。 http://appium.io/slate/en/master/?java#automating-hybrid-apps – nullpointer
nup it is build on java android .. –
您所訪問的上下文看起來並不完全是本機的。在此屏幕上,您是否可以嘗試獲取contextHandles來檢查appium列出的內容。它可以更好地證明可用的上下文,以及是否需要切換。 – nullpointer