安卓popupwindow未被Appium看到

安卓popupwindow未被Appium看到,appium,webdriver-io,appium-android,Appium,Webdriver Io,Appium Android,我有一个原生android应用程序,其中有几个弹出窗口,我正在尝试为使用Webdriverio和Appium创建自动测试。我尝试用不同的选择器(Id、类等)与弹出窗口中的元素交互,但似乎Appium找不到它们 当我在Appium desktop中使用inspector时,它不会看到元素,但它们会显示在它显示的屏幕截图中。然后,我尝试直接从Appium获取xml,但返回的xml也没有弹出窗口 我查看了appium表格,发现了一些类似的问题,但没有找到有效的答案 如何让appium看到弹出窗口 编辑

我有一个原生android应用程序,其中有几个弹出窗口,我正在尝试为使用Webdriverio和Appium创建自动测试。我尝试用不同的选择器(Id、类等)与弹出窗口中的元素交互,但似乎Appium找不到它们

当我在Appium desktop中使用inspector时,它不会看到元素,但它们会显示在它显示的屏幕截图中。然后,我尝试直接从Appium获取xml,但返回的xml也没有弹出窗口

我查看了appium表格,发现了一些类似的问题,但没有找到有效的答案

如何让appium看到弹出窗口


编辑:在打开弹出窗口的应用程序上使用Android Studio布局检查器时,您可以从两个窗口中选择一个是应用程序,一个是弹出窗口。我不知道如何通过appium做到这一点,但它可能是一个潜在客户

不幸的是,您运气不好

谷歌已经在那里呆了很多年了,但谷歌似乎并不在意

作为我的一个项目中的一个变通方法,我在下拉列表中保留了所有可能值的列表,并通过按箭头键和enter键选择它们

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

不幸的是你运气不好

谷歌已经在那里呆了很多年了,但谷歌似乎并不在意

作为我的一个项目中的一个变通方法,我在下拉列表中保留了所有可能值的列表,并通过按箭头键和enter键选择它们

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

首先,android Development中的弹出窗口称为“Toast”。(短消息)


选择器是正确的,适用于100%。您可以使用它,也可以只使用“//android.widget.Toast”。

首先,android Development中的弹出窗口称为“Toast”。(短消息)


选择器是正确的,适用于100%。你可以使用它,也可以只使用“//android.widget.Toast”。

是唯一适合我的。我有一个类似的问题,PopupWindow类/视图不能直接从我的应用程序的上下文中访问。切换到“NATIVE_APP”上下文(同时保存当前上下文)允许我访问该弹出窗口中的元素。然后我可以切换回应用程序的上下文继续测试我的应用程序。

是唯一对我有效的。我有一个类似的问题,PopupWindow类/视图不能直接从我的应用程序的上下文中访问。切换到“NATIVE_APP”上下文(同时保存当前上下文)允许我访问该弹出窗口中的元素。然后,我可以切换回我的应用程序的上下文,继续测试我的应用程序。

我认为有一种解决方法,允许您在最小化应用程序并还原它时检测弹出元素。让我知道这是否有效:)@Angusiasty谢谢你的回答。我试过了,但是当我最小化应用程序时弹出窗口就会关闭,所以这个解决方法在我的情况下不起作用。我认为有一个解决方法可以让你在最小化应用程序并还原它时检测弹出元素。让我知道这是否有效:)@Angusiasty谢谢你的回答。我试过了,但是当我最小化应用程序时,弹出窗口就会关闭,所以这个解决方法在我的情况下不起作用。谢谢回答。我有几个弹出窗口,其中的值是在运行时生成的,因此我无法保留所有可能值的列表。我还有一些弹出窗口,无法通过箭头键和enter方法访问。你还有其他想法吗?我的意思是他们没有。如果你不能使用dpad,你只能按坐标单击。这将使您的测试难以维护。至于元素列表,如果您没有,您可以:更改应用程序实现,确定应用程序的这一部分不可测试,创建和API将为您提供值。谢谢。我想我必须看看这些选项中的哪一个,除非我找到Android Studio布局检查器的答案。我有几个弹出窗口,其中的值是在运行时生成的,因此我无法保留所有可能值的列表。我还有一些弹出窗口,无法通过箭头键和enter方法访问。你还有其他想法吗?我的意思是他们没有。如果你不能使用dpad,你只能按坐标单击。这将使您的测试难以维护。至于元素列表,如果您没有,您可以:更改应用程序实现,确定应用程序的这一部分不可测试,创建和API将为您提供值。谢谢。我想我必须看看这些选项中的哪一个,除非我弄清楚Android Studio布局检查器的事情