解决办法:
1、切换到webView,对页面源码进行打印
# self.driver.switch_to.context("WEBVIEW_xweb") # print(self.driver.context) p = self.driver.page_source with open('123.html','wb') as f: f.write(p.encode('utf-8'))
2、当上面方法获取元素不全时,通过webelement.get_attribute(“innerHtml”)来获取当前元素的源码
p = eles[0].get_attribute('innerHTML') with open('123.html', 'wb') as f: f.write(p.encode('utf-8'))
3、使用chrome自带的chrome://inspect定位
想要对web应用或者Hybrid应用进行调试时(获取页面元素信息等等),必定绕不开的就是chrome浏览器的inspect功能了:在chrome浏览器URL中输入chrome://inspect即可对移动设备中的web页面进行调试。方便是方便,但是碰到的坑数不胜数:
- 点击inspect发现加载的是空白页面
- 点击inspect出来的是http 404
4、uc-devtools工具来定位
准备:需要打开App的webview-debug模式
安装很简单:直接点击下载安装即可,由于是基于Chromium,所以原理其实和chrome的inspect类似,不需要kexue上网!
使用步骤:
- 打开手机/模拟器,保证能够通过adb devices检测到设备(检测不到的同学可以看下我之前写的adb连接问题整理这篇blog)
- 打开任意手机端浏览器访问网页或者H5页面,注意:如果是app内嵌web页面,需要打开app的webview debug模式
- 进行到第二步如果发现显示不出来,可以选择设置->本地Devtools Inspector UI资源