我面临一个问题,即下拉值的元素未在 uiautomatorviewer 中显示。
虽然我通过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 屏幕:-
请建议我在这种情况下应该做什么。任何解决方案/建议将不胜感激。