Appium看不到Android弹出窗口



我有一个本机Android应用,其中有一些弹出窗口,我正在尝试创建用于使用WebDriverio和Appium的自动化测试。我尝试与带有不同选择器(ID,类等)的弹出窗口中的元素进行交互,但似乎Appium找不到它们。

当我在Appium桌面中使用Inspector时,它看不到元素,但它们确实显示在显示的屏幕截图中。然后,我尝试使用http://localhost直接从Appium获取XML:4723/wd/hub/session/session/session-id/source和xml我也没有弹出窗口。

我以appium表格看,发现了一些类似的问题,但没有奏效的答案。

如何获得Appium查看弹出式?

编辑:在带有打开弹出的应用程序上使用Android Studio Layout Inspector时,我们可以从两个Windows One中选择该应用程序,一个是弹出窗口。我无法弄清楚如何通过Appium做到这一点,但这可能是铅

不幸的是您不幸。

众所周知,这个问题已经存在多年,而Google似乎不在乎。

作为我项目之一的解决方法,我保留了下拉列表中所有可能值的列表,然后按下箭头键并输入。

mobileDriver.pressKey(new KeyEvent(AndroidKey.DPAD_DOWN));
mobileDriver.pressKey(new KeyEvent(AndroidKey.ENTER));

首先,Android developmant中的所有弹出窗口称为'吐司'。(短消息)

MobileElement toast = driver.findElement(By.xpath("//android.widget.Toast[1]"));
System.out.println(toast.getText());

选择器适合100%。您可以使用它,也可以仅使用"//Android.widget.toast"。

ivan pronin的响应是唯一对我有用的反应。我也有一个类似的问题,即直接从我的应用程序上下文中直接无法访问弹出窗口/视图。切换到"本机_App"上下文(同时保存当前上下文)使我可以访问该弹出窗口中的元素。然后,我能够切换回我的应用程序上下文以继续测试我的应用程序。

如果仍面临此问题。与开发人员连接,将Android弹出窗口设置为ISFOUSABLE(true),然后尝试再次检查。看看它是否有效。

我发现在 uiautomator2驱动程序中激活enableMultiWindows设置可以解决访问PopupWindow元素的问题,例如AutoCompleteTextView下拉下拉下拉。

激活测试中的设置,请使用驱动程序API如下:

val yourDriver = AndroidDriver(URL("..."), UiAutomator2Options())
yourDriver.setSetting("enableMultiWindows", true)

在Appium Inspector中,您可以通过所需功能激活设置:

"appium:settings[enableMultiWindows]": true

(Appium Inspector UI屏幕截图)

最新更新