微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Webview上下文更改导致Appium崩溃时,无法在Device Farm中的混合应用程序上启动测试

如何解决Webview上下文更改导致Appium崩溃时,无法在Device Farm中的混合应用程序上启动测试

我正在开发React Native应用,我需要在Device Farm上启动测试。使用我的Android模拟器在本地进行的测试工作非常好。但是,在Device Farm上启动它们时,它会崩溃并且不会启动任何单个测试。

我的应用程序使用Webview登录,并且Webview在应用程序启动后立即启动。我的能力是这样的:

{
platformName: 'Android',maxInstances: 1,automationName: 'UiAutomator2',appPackage: "com.init.app",appActivity: ".MainActivity"
}

我在chromedriver版本上遇到了问题,我在外部安装了很多软件包,然后我最终使用了Device Farm提供的chromedriver,就像我在论坛的另一篇文章中看到的那样。我没有chromedriver错误,但测试最终失败并显示以下错误

[0-0] 2020-09-07T09:24:05.783Z INFO webdriver: COMMAND getContexts()
[0-0] 2020-09-07T09:24:05.783Z INFO webdriver: [GET] http://127.0.0.1:4723/wd/hub/session/90a3d7b2-9193-44b0-a86c-5af2f52a9347/contexts
[0-0] 2020-09-07T09:24:05.967Z INFO webdriver: RESULT [ 'NATIVE_APP','WEBVIEW_chrome' ]
[0-0] 2020-09-07T09:24:05.968Z INFO webdriver: COMMAND switchContext("WEBVIEW_chrome")
[0-0] 2020-09-07T09:24:05.968Z INFO webdriver: [POST] http://127.0.0.1:4723/wd/hub/session/90a3d7b2-9193-44b0-a86c-5af2f52a9347/context
[0-0] 2020-09-07T09:24:05.968Z INFO webdriver: DATA { name: 'WEBVIEW_chrome' }
[0-0] 2020-09-07T09:25:16.963Z DEBUG webdriver: request Failed due to response error: unkNown error
[0-0] 2020-09-07T09:25:16.964Z INFO webdriver: retrying 1/3
[0-0] 2020-09-07T09:25:16.964Z WARN webdriver: Request Failed with status 500 due to An unkNown server-side error occurred while processing the command. Original error: Process didn't end after 10000ms (cmd: '/opt/chromedriver/linux/65/chromedriver --url-base\=wd/hub --port\=8000 --adb-port\=5037 --verbose')
[0-0] 2020-09-07T09:25:16.964Z INFO webdriver: [POST] http://127.0.0.1:4723/wd/hub/session/90a3d7b2-9193-44b0-a86c-5af2f52a9347/context
2020-09-07T09:25:16.964Z INFO webdriver: DATA { name: 'WEBVIEW_chrome' }
[0-0] 2020-09-07T09:25:17.185Z DEBUG webdriver: request Failed due to response error: unkNown error
[0-0] 2020-09-07T09:25:17.185Z INFO webdriver: retrying 2/3
2020-09-07T09:25:17.185Z INFO webdriver: [POST] http://127.0.0.1:4723/wd/hub/session/90a3d7b2-9193-44b0-a86c-5af2f52a9347/context
[0-0] 2020-09-07T09:25:17.185Z WARN webdriver: Request Failed with status 400 due to No such context found.
[0-0] 2020-09-07T09:25:17.185Z INFO webdriver: DATA { name: 'WEBVIEW_chrome' }
[0-0] 2020-09-07T09:25:17.414Z DEBUG webdriver: request Failed due to response error: unkNown error
[0-0] 2020-09-07T09:25:17.414Z INFO webdriver: retrying 3/3
2020-09-07T09:25:17.414Z INFO webdriver: [POST] http://127.0.0.1:4723/wd/hub/session/90a3d7b2-9193-44b0-a86c-5af2f52a9347/context
[0-0] 2020-09-07T09:25:17.414Z WARN webdriver: Request Failed with status 400 due to No such context found.
[0-0] 2020-09-07T09:25:17.414Z INFO webdriver: DATA { name: 'WEBVIEW_chrome' }
[0-0] 2020-09-07T09:25:17.615Z DEBUG webdriver: request Failed due to response error: unkNown error
[0-0] 2020-09-07T09:25:17.615Z ERROR webdriver: Request Failed with status 400 due to unkNown error: No such context found.
[0-0] 2020-09-07T09:25:17.617Z ERROR @wdio/sync: unkNown error: No such context found.
    at WebView.switchToContext (/tmp/scratchZ8mnCv.scratch/test-package_N9O3d/node_modules/stories-test/src/helpers/WebView.js:41:16)
    at Object.before (/tmp/scratchZ8mnCv.scratch/test-package_N9O3d/node_modules/stories-test/src/support/hooks.js:79:21)

Appium服务器显示了此信息:

2020-09-07 09:25:06:924 - [35m[WD Proxy][39m Determined the downstream protocol as 'MJSONWP'
2020-09-07 09:25:06:924 - [debug] [35m[MJSONWP][39m Matched JSONWP error code 100 to UnkNownError
2020-09-07 09:25:06:950 - [debug] [35m[Chromedriver][39m UnkNownError: An unkNown server-side error occurred while processing the command. Original error: chrome not reachable
2020-09-07 09:25:06:950 - [debug] [35m[Chromedriver][39m   (Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Linux 3.13.0-139-generic x86_64)
2020-09-07 09:25:06:950 - [debug] [35m[Chromedriver][39m     at errorFromMJSONWPStatusCode (/usr/local/avm/versions/1.18.0/node_modules/appium/node_modules/appium-base-driver/lib/protocol/errors.js:767:10)
2020-09-07 09:25:06:950 - [debug] [35m[Chromedriver][39m     at ProxyRequestError.getActualError (/usr/local/avm/versions/1.18.0/node_modules/appium/node_modules/appium-base-driver/lib/protocol/errors.js:661:14)
2020-09-07 09:25:06:950 - [debug] [35m[Chromedriver][39m     at JWProxy.command (/usr/local/avm/versions/1.18.0/node_modules/appium/node_modules/appium-base-driver/lib/jsonwp-proxy/proxy.js:278:19)
2020-09-07 09:25:06:951 - [debug] [35m[Chromedriver][39m     at process.internalTickCallback (internal/process/next_tick.js:77:7)
2020-09-07 09:25:06:958 - [35m[Chromedriver][39m Chromedriver exited unexpectedly with code 1,signal null
2020-09-07 09:25:06:958 - [debug] [35m[Chromedriver][39m Changed state to 'stopped'

我使用AWS Device Farm提供的Appium 1.18,并且我的应用程序在Android 8+上运行。

任何帮助将不胜感激! ?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。