前言

上一篇已经解决切换到微信公众号的webview上了,但是定位webview上元素的时候一直提示找不到,打印page_source也找不到页面上的元素,这个问题困扰了一整天,还好最后找到了原因,
此处埋了一个深坑,需要再次切换handle

切换到webview

1.上一篇已经详细介绍如何切换到微信公众号的webview上,这里就不重复说了,贴下代码:

# 切换到webview
time.sleep(2)
print(driver.contexts)
driver.switch_to.context('WEBVIEW_com.tencent.mm:tools')
切换handle

1.切换到webview上后,发现死活定位不到页面上的元素,打印page_source也找不到页面上的元素,最后打印当前的所以handle发现有两个

appium+python自动化43-微信公众号webview操作_appium

2.打印的结果有两个handle,那就只需要切换到第二个handle上就行了,也就是列表里面的下标[1]

['CDwindow-f00b5e03-11bc-4686-934e-26a32ac3a0fa', 'CDwindow-fdadc56e-eb01-4575-927e-74966e64c082']

操作webview

1.操作目标:点击webview上的“app”这个选项,然后定位列表页内容,并且打印出来

appium+python自动化43-微信公众号webview操作_appium_02

2.继续操作webview上的元素定位,这里的元素定位跟selenium的元素定位一样了

appium+python自动化43-微信公众号webview操作_python技巧_03

3.定位app列表页,并且打印列表的内容

appium+python自动化43-微信公众号webview操作_python_04

在学习过程中有遇到疑问的,可以appium+python QQ群交流:330467341