如果你还想从头学起Appium,可以看看这个系列的文章哦!
https://www.cnblogs.com/poloyy/category/1693896.html
需要让开发在app中添加 webview 调试代码,yinw
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WebView myWebView = (WebView) findViewById(R.id.jcywebview); # 添加这一行 myWebView.setWebContentsDebuggingEnabled(true); };
注意:从应用市场下载的app不具备此条件哦
跟开发说一声:帮我开启 webview debug 模式就可以啦~
方法:通过chrome 浏览器的远程调试功能(前提是本电脑可以爬梯子上网)
注意:有的系统比较老的,比如android 4.4 对应的 webview 的版本比较老 ,比如33.0 的,可能不能inspect, 所以尽可能使用新一些的android 版本
点击 inspect 之后,就可以像看网页一样啦!可以随意定位 webview 页面的元素了
翻上去,前面已经讲啦【注意标红文字】
在手机设置页面,搜索webview就可以啦
其实满简单的,和Selenium 切换至 iframe 差不多的顺序,先看看伪代码的步骤
NATIVE_APP
链接:http://pan.baidu.com/s/1CsXz0JbaDIoAMVBOFvorcg
提取码:a9lc
根据上面说的伪代码去理解这段完整的代码哦
from appium import webdriver caps = { "platformName": "Android", "platformVersion": "6", "deviceName": "test", 'appActivity': '.MainActivity', 'appPackage': 'com.example.jcy.wvtest', # 设置命令超时时间 'newCommandTimeout': 6000, # 确保自动化之后不重置app 'noReset': True, # 底层驱动 'automationName': 'UiAutomator2', # 查看webviwe版本方式三:通过代码的报错来查看【最终办法】 # 指定chromedriver存放的路径【需要改成自己的】 'chromedriverExecutableDir': 'C:\Tools\webdriver\chromedriver_win32_2.23' # chromedriver版本匹配地址【可以找到对应的chromedriver版本】 # https://github.com/appium/appium/blob/masterhttps://img.qb5200.com/download-x/docs/en/writing-running-appium/web/chromedriver.md } driver = webdriver.Remote('http://localhost:4723/wd/hub', caps) # 查看当前app的context(appium操作的作用域) # context-NATIVE_APP的时候-只能操作原生控件 # context-WEBVIEW_包名,只能操作web元素 # 查看context的名称 print(driver.contexts) # 当前处于哪个context? print(driver.current_context) # 如何切换context driver.switch_to.context('WEBVIEW_com.example.jcy.wvtest') # 打印切换后的context print(driver.current_context) # 访问百度页面 driver.get('http://baidu.com') # driver.find_element_by_id('index-kw').send_keys('松勤\n') # 操作原生控件? driver.switch_to.context('NATIVE_APP') # 点击通知 driver.find_element_by_accessibility_id('通知').click() input() driver.quit() # app的类型 # 原生_app # 混合app # web_app