【转】NO.3、python+appium+ios,遍历真机元素,得到webview

时间:2023-03-08 22:25:38
【转】NO.3、python+appium+ios,遍历真机元素,得到webview

pyhton+appium+iOS,遍历真机webview。是遍历真机的webview,遍历模拟器的webview请另寻方法。

1.mac上安装ios_webkit_debug_proxy

命令:brew install ios_webkit_debug_proxy

2.ios上打开web检查器

位置:设置—》Safari—》高级—》web检查器

3.启动ios_webkit_debug_proxy

命令:ios_webkit_debug_proxy -c xxxxxxxxxxxxxxxxxxx:27753 -d

-c后的参数指真机udid

4.driver.contexts即可得到页面所有context,这个方法会将context存在list里,打印出list内容,查看你要的webview在第几个,用switch_to.context()切换到那个webview即可,代码如下,

# 假设我的目标webview存在list里的第三个

myWebview = self.driver.context[2]

self.driver.switch_to.context(myWebview)

这样就切换到了目标webview,接下来就可以像web自动化一样,操作html元素了。怎么得到元素属性,请继续往下看。

----------------------------------------怎么得到webview里的元素--------------------------------------------

切换到了webview里,就可以对元素操作了,但是第一步,要得到元素的属性,下面讲步骤:

1.启动webkit服务,并指定谷歌浏览器进行监听

ios_webkit_debug_proxy -f chrome-devtools://devtools/bundled/inspector.html

2.跑起你的用例代码,停留在含webview的页面。注意,是跑起代码,停留在含webview的页面,不是手动点到那个位置,切记!切记!

3.谷歌浏览器地址输入http://127.0.0.1:9222

在列表中,你就看到了webview的地址,是个完整的url,如图

【转】NO.3、python+appium+ios,遍历真机元素,得到webview

4.复制出url到浏览器地址,回车,你就会看到在app里一样的webview页面,接下来你就能像web自动化一样,得到元素xpath等等了

---------------------------------------------------------------------------------------------------------------------------------------------------------------