美文网首页我爱编程
appium使用过程中遇到的问题

appium使用过程中遇到的问题

作者: yangzai | 来源:发表于2017-12-19 17:32 被阅读178次
解决webview中找到元素但是点击无效的问题
  • 1.问题描述:
    在做webview自动化的时候出现这么个现象,获取H5页面的元素成功了,也能读取内容,appium通过chromedirver发送click事件返回也是200,但是就是没有点击效果。发现也有人遇到过 相似的问题,故记录下来分享给其他人。
    appium的log:
[HTTP] --> POST /wd/hub/session/ba474c1b-f80c-41a7-b6c2-6d7214c0a98a/element {"using":"xpath","value":"/html/body/div[14]/a/span[3]"}
[MJSONWP] Driver proxy active, passing request on via HTTP proxy
[debug] [JSONWP Proxy] Proxying [POST /wd/hub/session/ba474c1b-f80c-41a7-b6c2-6d7214c0a98a/element] to [POST http://127.0.0.1:8000/wd/hub/session/c5344b63d7b71b370380a06abbcf1994/element] with body: {"using":"xpath","value":"/html/body/div[14]/a/span[3]"}
[debug] [JSONWP Proxy] Got response with status 200: {"sessionId":"c5344b63d7b71b370380a06abbcf1994","status":0,"value":{"ELEMENT":"0.08174687116657209-1"}}
[JSONWP Proxy] Replacing sessionId c5344b63d7b71b370380a06abbcf1994 with ba474c1b-f80c-41a7-b6c2-6d7214c0a98a
[HTTP] <-- POST /wd/hub/session/ba474c1b-f80c-41a7-b6c2-6d7214c0a98a/element 200 158 ms - 107 
[HTTP] --> POST /wd/hub/session/ba474c1b-f80c-41a7-b6c2-6d7214c0a98a/timeouts {"type":"implicit","ms":2000}
[MJSONWP] Driver proxy active, passing request on via HTTP proxy
[debug] [JSONWP Proxy] Proxying [POST /wd/hub/session/ba474c1b-f80c-41a7-b6c2-6d7214c0a98a/timeouts] to [POST http://127.0.0.1:8000/wd/hub/session/c5344b63d7b71b370380a06abbcf1994/timeouts] with body: {"type":"implicit","ms":2000}
[debug] [JSONWP Proxy] Got response with status 200: {"sessionId":"c5344b63d7b71b370380a06abbcf1994","status":0,"value":null}
[JSONWP Proxy] Replacing sessionId c5344b63d7b71b370380a06abbcf1994 with ba474c1b-f80c-41a7-b6c2-6d7214c0a98a
[HTTP] <-- POST /wd/hub/session/ba474c1b-f80c-41a7-b6c2-6d7214c0a98a/timeouts 200 10 ms - 76 
[HTTP] --> POST /wd/hub/session/ba474c1b-f80c-41a7-b6c2-6d7214c0a98a/element/0.08174687116657209-1/click {"id":"0.08174687116657209-1"}
[MJSONWP] Driver proxy active, passing request on via HTTP proxy
[debug] [JSONWP Proxy] Proxying [POST /wd/hub/session/ba474c1b-f80c-41a7-b6c2-6d7214c0a98a/element/0.08174687116657209-1/click] to [POST http://127.0.0.1:8000/wd/hub/session/c5344b63d7b71b370380a06abbcf1994/element/0.08174687116657209-1/click] with body: {"id":"0.08174687116657209-1"}
[debug] [JSONWP Proxy] Got response with status 200: {"sessionId":"c5344b63d7b71b370380a06abbcf1994","status":0,"value":null}
[JSONWP Proxy] Replacing sessionId c5344b63d7b71b370380a06abbcf1994 with ba474c1b-f80c-41a7-b6c2-6d7214c0a98a
//这里显示click发送成功
[HTTP] <-- POST /wd/hub/session/ba474c1b-f80c-41a7-b6c2-6d7214c0a98a/element/0.08174687116657209-1/click 200 360 ms - 76 
  • 2.后来经过分析,是由于前端人员使用了 zepto tap方式处理热区的点击事件,而没有给H5元素设置事件监听,所以chromedriver发送的click事件是没有效果的。
  • 3.解决方式:
    亲测网上的解决方案会空指针异常,主要是因为构建selenium的Actions时driver没有初始化。
    我的解决方案:
    1.切换到WEB : driver.context("WEBVIEW_xxx");
    2.使用selenium executescript方法执行zepto脚本
    ((JavascriptExecutor) driver).executeScript("$('.js_chance_info').trigger('tap')");

参考文章:https://testerhome.com/topics/2461


解决手机chrom版本过低问题

1.错误log:

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: session not created exception: Chrome version must be >= 58.0.3029.0 (Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform=Windows NT 6.1.7601 SP1 x86_64) 

由于我的appium中的chromedriver使用的是2.31版本,需要Chrome版本 58+.而手机的上chrom为53,升级手机chrom即可
注:chromdriver在{APPIUM_HOME}\node_modules\appium-chromedriver\chromedriver\win中

2.如果chromedriver要跟chrome浏览器版本对应,否则还是不能正常使用
对应关系


QQ图片20180129192831.jpg

相关文章

网友评论

    本文标题:appium使用过程中遇到的问题

    本文链接:https://www.haomeiwen.com/subject/ktliwxtx.html