python_appium_操作及混合应用

appium官网:

网址:http://appium.io/#

      1.选择英文版的进入

 

 

 

初始化客户端

appium使用:

#获取现在的页面名字

print(driver.current_activity)

#获取包名

print(driver.current_package)

#获取上下文环境,原声环境和 web环境 (相当于web页面的iframe)

print(driver.current_context)

#获取所有的上下文环境

print(driver.current_contexts)

#获取源代码

print(driver.page_source)

#获取定位信息

print(driver.location)

 

#跳转到某个页面(package:包名,activity:事件名)

driver.start_activity(package,activity)

 

#后台运行 5s,一直运行:-1

driver.backgroud_app(5)

 

#查看app有没有安装,app:安装是包名,ios是bundle_id

driver.is_app_installed(app)

 

#安装app

install_app('apk')

 

#关闭app

close_app()

二。注意点:

#原声页面无法使用的操作

1.获取窗口

driver.current_url

2.获取url

driver.current_window_handle

三。MultiAction 组合操作(多指操作)

引入方法:

from appium.webdriver.common.multi_action import MultiAction

放大

缩小

 

四:

输入键盘操作,需要输入数字

  #浏览器

  EXPLORER=64

  #电源键

  POWER=26

  #音量键

  VOLUME_UP=24

  VOLUME_DOWN=25

  #输入数据前需要点击

  queren=66

android的keycode表参考链接:

  https://www.cnblogs.com/yannuo-666/p/12989920.html

1)用法:

driver.press_keycode(8)

2)简化(封装常用码表):

  class Mobile_key:

    ENTER = 66

    HOME= 3


 3)隐藏键盘

driver.hide_keyboard()

4)其他操作

driver.get_screenshot_as_file()

shake 摇一摇

lock

unlock

 

五.appium重要操作汇总

-元素查找

-click() 点击

-quit() start

-swipe() 坐标

-TouchAction() 单个手指操作

-MultiAction() 多手指操作

-page_source 获取源代码,用法(判断某个元素在不在源码中):"条件"  in  driver.page_source

 

六:混合应用: Hybrid APP

1)常用的跨平台开发的技术框架

  Cordova Apache

  React Native,RN 使用RN框架的代码在进行元素定位的时候会发现没有webview 是因为他会转换成 源码

  Lonic

  Flutter

  Weex

  Adobe Phonegap

2)元素种类,安卓组件控件

  imageview ==> tagname

  textview --文本控件

  layout --

  button --按钮控件

  imageview --图标控件

  checkbox --

  switch --开关控件

  ratingbar --评分条

  seekbar --拖动条

  toast -- 弹出

  webview --显示网页

 

3)如何判断一个页面是 web

注意:需要测试web app 需要先找开发开启webview的调试模式(setWebContentsDebuggingEnabled=True)

  元素的class 为webview

  有x图标,不一定准确

  uiautomatorviewer 等辅助工具难以定位

  是否有进度条 --不一定准确

  web dev 调试工具uc-tools 或者 chrome inspect 可以查看得到

    chrome:chrome://inspect

      

 

 

 

      uc-devtools工具:参考地址:https://www.cnblogs.com/sushi/p/12455352.html

      

 

 

 4)测试步骤

-通过uiautomatorviewer 定位原生应用控件

-通过uc-devtools定位web页面

-appium操作到web页面

-上下文切换

注意:在进入webview但没有切换至webview里面时,不确定context名称可以使用 print(driver.contexts)来查看,其中‘NATIVE_APP’是系统原生环境,忽略。

  切换至指定的webview页面(context:名称):driver.switch_to.context(context)

  切换至默认的:driver.switch_to.context(None)

  指定谷歌浏览器版本,一般放到连接信息里面(caps):

  相对路径:chromedriverExecutableDir : r"c:\chrome_driver"

  精准路径:chromedriverExecutable : r"c:\chrome_driver\webdriver.exe"

  

 

-再定位web页面

-退回原生页面,切换回原生

 

七:Toast

前提:

  1、appium server 1.6.3 以上

  2、代码中必须指定automationName为:UiAutomator2

  3、UiAutomator2只支持安卓版本 5.0+

  4、jdk 1.8 64位以上,配置好java_home环境变量

定位:

注意:如果使用显示等待不能使用 visiblve(tost是不可见得) 只能使用presence,对于tost弹框先用隐试等待,隐试等待没用时再用显示等待

  表达方式:

      xpath: //*[contains(@text,'手机号码不能为空')]

      find_element_by_xpath("//android.widget.Toast")

 

posted @ 2021-01-24 13:18  1142783691  阅读(66)  评论(0编辑  收藏  举报