appium 多个APP进行切换测试

appium 启动多个APP

1.desired_caps配置 autoLaunch为False ,表示初始化driver后不自动启动APP

'autoLaunch':False  #是否让Appium自动安装和启动应用,默认为True

2.获取Activity

adb shell dumpsys SurfaceFlinger

在这里插入图片描述

3.初始化driver完成后,打开多个APP进行切换

appium 提供打开APP方法

driver.start_activity('cn.hyh.u3dproject', '.MainActivity')#打开APP1
time.sleep(2)
driver.find_element(MobileBy.ID,'cn.hyh.u3dproject:id/btnLogin').click()

driver.start_activity('com.jmar.xahl.ar.project', '.ui.activity.webview.WebViewActivity')#打开APP2

monkey,打开APP方法

os.system('adb shell monkey -p cn.hyh.u3dproject. -v 1')#monkey命令打开APP1


#-------------------------------------------------------------------------------
# @File : demo_02.py
# @Time : 2022-05-31 17:23
# @Author : mojin
# @Email : 397135766@qq.com
# @Software : PyCharm
#-------------------------------------------------------------------------------

# 导入webdriver

from appium import webdriver
import time,os
from appium.webdriver.common.mobileby import MobileBy
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait


desired_caps ={'platformName': 'Android',
               'newCommonTimeout': 500,#Appium等待接收从客户端发送的新命令的超时时长,超时后Appium认为客户端已经退出,终止会话。
               'noReset': True, #不在此会话之前重置应用程序状态(意思就是每次启动都当做第一次启动,因为首次进入某些应用时有的会有弹框,所以测试时可以设置为True),默认为False
               'autoGrantPermissions': True, #取消自动权限弹框的处理 true or false
               'deviceName': '0123456789ABCDEF',
               'platform_version': '10',
               'appPackage': "com.jmar.xahl.ar.project",
               'appActivity': "com.jmar.xahl.ar.project.ui.activity.splash.SplashActivity",
               'udid': '0123456789ABCDEF',#连接的物理设备的唯一设备标识符,可通过adb devices查看,就是一串数字和字母组成的字符
               'systemPort': 8200,  #appium-uiautomator2-server默认是8200
               'automationName': 'uiautomator2',#使用哪个自动化引擎,默认是Appium
               "chromedriverExecutable": r"D:\Program Files (x86)\python374\chromedriver.exe",
               'autoLaunch':False  #是否让Appium自动安装和启动应用,默认为True

               }

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 设置等待时间,如果不给时间的话可能会找不到元素
driver.implicitly_wait(10)

#driver.launch_app()
#driver.launch_app()

os.system('adb shell monkey -p cn.hyh.u3dproject. -v 1')#monkey命令打开APP1
#driver.start_activity('cn.hyh.u3dproject', '.MainActivity')#打开APP1

time.sleep(2)
driver.find_element(MobileBy.ID,'cn.hyh.u3dproject:id/btnLogin').click()

driver.start_activity('com.jmar.xahl.ar.project', '.ui.activity.webview.WebViewActivity')#打开APP2
#driver.start_activity('com.jmar.xahl.ar.project', '.ui.activity.im.contact.ContactActivity')
time.sleep(6)

# driver0=BasePage(driver)
# time.sleep(5)
# driver
#前面一系列操作,打开了H5页面
#等待web页面出现
#WebDriverWait(driver,10,1).until(EC.visibility_of_element_located(MobileBy.CLASS_NAME,"android.widget.FrameLayout"))
#获取当前的上下文
# time.sleep(5)
contexts=driver.contexts
print("当前所有的contexts:",contexts)

# wins = driver.window_handles
# print(wins)
#切换上下文,切换到webview

# #也可以通过名称来切换
# #driver.switch_to.context("WEBVIEW_com.baidu.yuedu")
# driver.switch_to.context(contexts[-1])
# #获取web内容
# source=driver.page_source
# # 切回native
# driver.switch_to.context(contexts[0])
# driver.switch_to.context("NATIVE_APP") # 这样也是可以的
# #
# #
# message_module = (MobileBy.ANDROID_UIAUTOMATOR, 'new UiSelector().text("查看更多 ")')  #
# driver.find_element(*message_module).click()



time.sleep(10)









  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值