android+python 原生和webview元素定位

时间:2024-04-01 22:55:22

genymotion 模拟器:android  5.0.0 

python 2.7

appium 1.4.16.1

1、app原生元素定位(常用)

driver.find_element_by_id(“resourse-id”)

driver.find_element_by_name(“text”)

driver.find_element_class_name(“class”)

driver._find_element_by_accessibility_id("content-desc")

2、android+python+webview页面的定位

问题1):driver.contexts 的结果只有NATIVE_APP,无WEBVIEW

需要开发人员在对应的activity下增加代码,重新打包,开启webview远程调试的开关,且只针对android4.4及以上有用

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
     this.appView.setWebContentsDebuggingEnabled(true);
 }

问题2):获取webview的名字

contexts = .driver.contexts
for context in contexts:
    print context

问题3):切换到webview模式

driver.switch_to.context("WEBVIEW ")

问题4):切换回原生NATIVE_APP

driver.switch_to().context("NATIVE_APP")

问题5):webview的定位方式

1、在chrome中输入chrome://inspect/#devices,此时打开app页面

2、如果点击inspect为空白窗口,在hosts文件中添加如下地址:

61.91.161.217 chrome-devtools-frontend.appspot.com

61.91.161.217 chrometophone.appspot.com

3、然后cmd中输入命令:ipconfig /flushdns   刷新dns配置,再打开inspect

4、点击放大镜符号可以定位元素

android+python 原生和webview元素定位

3、此时可获取到webview的url,直接在chrome打开也可进行元素定位


参考文章:http://www.cnblogs.com/sao-fox/p/6396984.html