Appium Appium 测试 Android 原生态浏览器时无法输入网址 [问题已解决]

梦桥 · 2015年04月02日 · 最后由 无忧~ 回复于 2017年02月23日 · 2716 次阅读
 DesiredCapabilities capabilities = new DesiredCapabilities();
 capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
 capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, MobileBrowserType.BROWSER);
 driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
 //This time out is set because test can be run on slow Android SDK emulator
 PageFactory.initElements(new AppiumFieldDecorator(driver, 5, TimeUnit.SECONDS), this);
driver.get("http://m.baidu.com/");

浏览器能打开,但是无法输入网址?
该问题已经解决,原因为:
由于 android 原生态浏览器自动打开 google,appium 启动浏览器后,google 首页一直连接不上,appium 中的 get(url) 就不会继续进行,导致超时错误

共收到 13 条回复 时间 点赞

麻烦附上服务器 log。
你转换 context 后再试试?

#1 楼 @chenhengjie123
服务器 LOG 日志如下:

info: --> GET /wd/hub/session/026078e28656196f6ef360e88aacb4b7/window_handles {}
info: [debug] Proxying command to 127.0.0.1:9515
info: [debug] Making http request with opts: {"url":"http://127.0.0.1:9515/wd/hub/session/026078e28656196f6ef360e88aacb4b7/window_handles","method":"GET"}
info: [debug] Proxied response received with status 200: "{\"sessionId\":\"026078e28656196f6ef360e88aacb4b7\",\"status\":0,\"value\":[\"CDwindow-86117E70-2D1A-F153-E29B-76A9BCF0B6A6\"]}"

info: <-- GET /wd/hub/session/026078e28656196f6ef360e88aacb4b7/window_handles 200 220.437 ms - 117
切换context
info: --> POST /wd/hub/session/026078e28656196f6ef360e88aacb4b7/context {"name":"WEBVIEW_1"}
info: Available contexts: NATIVE_APP,WEBVIEW_1
切换end
info: [debug] Responding to client with success: {"status":0,"value":null,"sessionId":"026078e28656196f6ef360e88aacb4b7"}
info: <-- POST /wd/hub/session/026078e28656196f6ef360e88aacb4b7/context 200 3.660 ms - 72 {"status":0,"value":null,"sessionId":"026078e28656196f6ef360e88aacb4b7"}
开始get http://m.baidu.com/
info: --> POST /wd/hub/session/026078e28656196f6ef360e88aacb4b7/url {"url":"http://m.baidu.com/"}
info: [debug] Proxying command to 127.0.0.1:9515
info: [debug] Making http request with opts: {"url":"http://127.0.0.1:9515/wd/hub/session/026078e28656196f6ef360e88aacb4b7/url","method":"POST","json":{"url":"http://m.baidu.com/"}}
get一直卡住等待超时
info: [debug] Didn't get a new command in 60 secs, shutting down...
info: Shutting down appium session
info: [debug] [BOOTSTRAP] [debug] Got data from client: {"cmd":"shutdown"}
info: [debug] [BOOTSTRAP] [debug] Got command of type SHUTDOWN
info: [debug] [BOOTSTRAP] [debug] Returning result: {"value":"OK, shutting down","status":0}
info: [debug] Sent shutdown command, waiting for UiAutomator to stop...
info: [debug] [BOOTSTRAP] [debug] Closed client connection

我的 Java 代码如下:

 DesiredCapabilities capabilities = new DesiredCapabilities();
 capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
               capabilities.setCapability(MobileCapabilityType.BROWSER_NAME,MobileBrowserType.BROWSER);
 driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
for(String s:driver.getWindowHandles())
{
    System.out.println(s);
}
((AndroidDriver)driver).context("WEBVIEW_1");
driver.get("http://m.baidu.com/");
14楼 已删除

自带浏览器默认主页 google,被墙一直打不开,结束前不执行下一个 get。

#4 楼 @sanlengjingvv 问题解决了,确实是这样,google 一直打不开,get 不会执行,知道超时,谢谢大神啊

#1 楼 @chenhengjie123 问题解决了,google 一直打不开,get 不会执行,直到超时,谢谢啦

#6 楼 @cpfeng0124 好,我也学到新东西了。
麻烦改一下帖子标题和内容,让后面的人能快速知道解决方法。

求助,我现在要测试手机上的系统自带的浏览器应用,是和混合应用。不知道 appinum 是否可支持完成测试?可以给提供下联系方式吗?请教下。谢谢 QQ 460989093

#6 楼 @cpfeng0124 具体是怎么解决的呢,是你 driver.get("http://m.baidu.com/baidu.com 然后再点击搜索按钮吗?");改成模拟去网址栏输入

#6 楼 @cpfeng0124 具体是怎么实现的呢,能不能贴一下,谢谢!

@chenhengjie123 @cpfeng0124 请问是怎么解决的,能不能分享一下?谢谢!

#11 楼 @sasori 问题就是这么回事:https://testerhome.com/topics/3576
另外的解决方法:换了 blueStacks 模拟器,这个模拟器安卓默认浏览器的主页不是谷歌。。是 bluestacks 的主页。。

@cpfeng0124 这么解决的,我也有同样的问题。

我的真机非 chrome 也不行呀,求问怎么解决?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册