android webview 技术原理
注意项:
- content-desc属性,不同的手机系统解析出来的值不一样,所以不建议使用该属性定位解析。
- 把webview页面映射到PC端,然后再对页面进行定位解析。
域套接字 概念:
- unix系统进程与进程之间通讯的一种方式。
- 客户端与服务端建立连接,需要有共同的套接字,和相应的服务端的端口号
- 套接字会处于监听状态,来监听客户端发来的请求
当客户端发来一个套接字请求,服务端套接字会对该请求进行响应,开启一个新的进程,告诉客户端已经链接成功。
启动appium,并收集log:appium -g logname.log |tee
webview工作过程:
- appium服务获取到一个contexts请求
- 调用appiumDriver.getContexts()方法
- 获取到一个可用的webview列表
- 运行一个shell命令:adb shell cat /proc/net/unix,获取到域套接字
- 获取所有被测设备的 webview 进程:adb shell "cat /proc/net/unix |grep webview"
- 查看进程的应用:adb shell "ps |grep 1136"
- 启动chromedriver
- Spawning chromedriver with: D:/BrowserDriver/chromedriver_win32_2.39/chromedriver.exe --url-base=wd/hub --port=8000 --adb-port=5037 --verbose
- 转发请求,将appium server (定位元素)的请求转发给chromedriver:
Proxying [POST /wd/hub/session/de7a181a-2a02-4bbb-9f39-6891e24cc45f/element] to [POST http://127.0.0.1:8000/wd/hub/session/7cdaf82f893212ef45da001d547961b1/element] with body: {"using":"id","value":"i_am_a_textbox"}
本文来自博客园,作者:于慧妃,转载请注明原文链接:https://www.cnblogs.com/fengyudeleishui/p/15705164.html