【问题标题】:Appium + Selenium - Unable to locate element on native app after popup closedAppium + Selenium - 弹出窗口关闭后无法在本机应用程序上找到元素
【发布时间】:2018-07-11 16:31:46
【问题描述】:

我正在使用 Appium + Selenium + Java 测试本机应用程序。

场景是在屏幕上打开一个弹出窗口。关闭弹出窗口后,我无法导航回打开弹出窗口的屏幕。

驱动程序无法找到它。

到目前为止,我已经尝试过了...

从 PopupOk 调用返回 Page 对象 driver.switchto() - 这里面的所有东西,框架,defaultContent() driver.context(name) 但没有任何效果。

非常感谢您对此的任何帮助。

【问题讨论】:

  • 能否分享相关的代码行和错误堆栈跟踪?
  • 您是说关闭弹窗后屏幕发生了变化,还是说是同一个屏幕但您的定位器不起作用?你在使用页面对象吗?如果是这样,请重新创建页面对象。
  • @BillHileman - 我在同一个屏幕上,但定位器不起作用。我尝试重新创建页面对象,但即使这样也没有用。

标签: java selenium selenium-webdriver appium


【解决方案1】:

适合我:((Appium 1.10, Android 8.1))

2 个选项:

第一种解决方案:

driver.runAppInBackground(Duration.ofMillis(300));

关闭弹出窗口后,您使用此行,您的应用将转到后台并返回,您将重新获得应用的焦点。

第二个解决方案:更好的一个:)

将此行添加到设置中:

capability.setCapability("noReset", true);

从现在开始,您的应用程序将像普通应用程序一样启动,无需设置重置即没有弹出窗口,您根本不会有焦点问题。

我希望它也对你有用! :)

【讨论】:

    【解决方案2】:

    您可以尝试通过将应用发送到后台 0 秒来再次获得焦点吗?

    在弹出窗口关闭后试试这个:

    driver.runAppInBackground(0);
    

    如果有效,您将必须能够正常恢复测试

    【讨论】:

    • 抱歉回复晚了。环境有一些问题。我试过了,但是当应用程序进入前台时,它从主页开始,并没有打开我所在的页面。
    猜你喜欢
    • 2018-12-19
    • 2017-06-04
    • 2021-02-09
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-17
    • 2022-01-08
    相关资源
    最近更新 更多