在android目錄下找到uiautomatorviewer.bat,然后雙擊,頁面的第二個按鈕連接設備
D:\Program Files\android-sdk-windows\tools\uiautomatorviewer.bat
from appium import webdriver caps = {} caps["appPackage"] = "com.tencent.mobileqq" # caps["appPackage"] = "com.android.settings" caps["appActivity"] = "com.tencent.mobileqq.activity.SplashActivity" # caps["appActivity"] = ".Settings" caps["platformName"] = "Android" caps["platformVersion"] = '4.4.2' caps["deviceName"] = '127.0.0.1:62001' caps["unicodeKeyboard"] = True caps["resetKeyboard"] = True caps["noReset"] = True driver = webdriver.Remote("http://localhost:4723/wd/hub", caps) #獲取手機大小 {'width': 720, 'height': 1280} size = driver.get_window_size() print(size) #如果安裝了返回True print(driver.is_app_installed("com.tencent.mobileqq")) #關閉app driver.close_app() import time time.sleep(3) #啟動app,啟動是初始化的app driver.launch_app() #1、除默認的初始化app之外 還可以在啟動其他app driver.close_app() driver.start_activity('com.android.settings', '.Settings') #2、他可以跳過某些場景,達到某個頁面 # element = driver.find_element_by_android_uiautomator('new UiSelector().text("新用戶")') # element.click() print(driver.current_activity) ele = driver.start_activity('com.tencent.mobileqq', '.activity.RegisterPhoneNumActivity') print(driver.current_activity)
#如果send_keys 報錯的話使用set_value
driver.set_value(ele, '123456')
# 返回當前session中的app類型
driver.current_context
# 返回當前app的類型
# WEBVIEW 或 WEBVIEW
# 底層實際調用current_context
driver.context
# 獲取app所有的類型
# 有WEBVIEW的則以list的形式展示兩個
driver.contexts
# app類型切換 參數接收app類型
# appium對selenium的switch_to的擴展
# 增加了MobileSwitchTo,繼承了selenium的switch_to
driver.switch_to.context('context')
element = driver.find_element_by_id('com.android.browser:id/url') element.send_keys('http://ui.imdsx.cn/uitester/') time.sleep(5) # key code Android按鍵碼 driver.press_keycode(66) time.sleep(2) # 打印當前的app類型 print(driver.current_context) # 從原生切換到H5 driver.switch_to.context(driver.contexts[1]) # 定位id為i1的元素 driver.find_element_by_css_selector('#i1').send_keys('11111') # 打印切換玩的app類型 print(driver.current_context)