文章目錄
- 一、toast 元素的定位
- 二、滑屏操作
一、toast 元素的定位
toast 元素就是簡易的消息提示框,toast 顯示窗口顯示的時間有限,一般3秒左右
# -*- coding=utf-8 -*-
from time import sleep
from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as Ec# 設置操作終端的配置參數
desired_caps = dict(platformName='Android', # 指定操作系統platformVersion='12',# 指定操作系統版本automationName='Uiautomator2',# 默認框架deviceName='127.0.0.1:62001',# 指定設備名稱appPackage='com.tal.kaoyan',# 被操作的應用程序包名appActivity='com.tal.kaoyan.ui.activity.SplashActivity',# 啟動頁面noReset='true',# true--不重置 false--重置app='F:\Pycharm\AppAuto\kaoyan_v4.5.3.apk' # apk文件所在路徑
)
# 發送命令給 appium server
driver = webdriver.Remote('http://127.0.0.1:4723', options=UiAutomator2Options().load_capabilities(desired_caps))
#-------------手機號密碼登錄----------------
phone_loc = (AppiumBy.ID, 'com.tal.kaoyan:id/loginEmailEdittext')
WebDriverWait(driver, 5).until(Ec.presence_of_element_located(phone_loc))
phone_input = driver.find_element(*phone_loc)
# 清空手機號輸入框
phone_input.clear()
# 輸入手機號
phone_input.send_keys('15956423841')password_input = driver.find_element(AppiumBy.ID, 'com.tal.kaoyan:id/rtlLoginLayout')
# 清空密碼輸入框
# password_input.clear()
# clear()方法無效,可以模擬鍵盤操作手動刪除文本框內容
password_input.click()
driver.press_keycode(67).press_keycode(67).press_keycode(67).press_keycode(67).press_keycode(67).press_keycode(67).press_keycode(67).press_keycode(67).press_keycode(67)# 輸入密碼
# password_input.send_keys('121335')
# send_keys() 無效,模擬鍵盤輸入
driver.press_keycode(8).press_keycode(14).press_keycode(14).press_keycode(8).press_keycode(7)protocol_agree_check = driver.find_element(AppiumBy.ID, 'com.tal.kaoyan:id/loginTreatyCheckboxPassword')
checked = protocol_agree_check.get_attribute("checked")
# 未勾選同意協議,則進行點擊同意協議
if checked == 'false':protocol_agree_check.click()login_btn = driver.find_element(AppiumBy.ID, 'com.tal.kaoyan:id/loginLoginBtn')
# 點擊登錄
login_btn.click()toast_loc = (AppiumBy.XPATH, "//*[contains(@text,'帳號或密碼錯誤')]")
# 顯示等待
WebDriverWait(driver, 15,0.01).until(Ec.presence_of_element_located(toast_loc))
toast_text = driver.find_element(*toast_loc).text
print("獲取 toast 元素的文本內容:",toast_text)
二、滑屏操作
- 同一個水平位置左滑:
- 開始位置與結束位置的坐標特點:
- Y坐標相同
- x坐標從大到小
- 開始位置與結束位置的坐標特點:
- 同一個水平位置右滑:
- 開始位置與結束位置的坐標特點:
- Y坐標相同
- x坐標從小到大
- 開始位置與結束位置的坐標特點:
- 上滑:
- 開始位置與結束位置的坐標特點:
- X坐標相同
- Y坐標從大到小
- 開始位置與結束位置的坐標特點:
- 下滑:
- 開始位置與結束位置的坐標特點:
- X坐標相同
- Y坐標從小到大
- 開始位置與結束位置的坐標特點:
# -*- coding=utf-8 -*-
from appium import webdriver
from appium.options.android import UiAutomator2Options# 設置操作終端的配置參數
desired_caps = dict(platformName='Android', # 指定操作系統platformVersion='12',# 指定操作系統版本automationName='Uiautomator2',# 默認框架deviceName='127.0.0.1:62001',# 指定設備名稱appPackage='com.tal.kaoyan',# 被操作的應用程序包名appActivity='com.tal.kaoyan.ui.activity.SplashActivity',# 啟動頁面noReset='true',# true--不重置 false--重置app='F:\Pycharm\AppAuto\kaoyan_v4.5.3.apk' # apk文件所在路徑
)
# 發送命令給 appium server
driver = webdriver.Remote('http://127.0.0.1:4723', options=UiAutomator2Options().load_capabilities(desired_caps))
#實現滑屏
# 獲取整個app屏幕的大小
size = driver.get_window_size()
x = size["width"]
y = size["height"]
# 左滑2次
for i in range(0,2):driver.swipe(start_x=x*0.9,end_x=x*0.2,start_y=y*0.9,end_y=y*0.9,duration=1000)
print("實現左滑兩次")
# 右滑2次
for i in range(0,2):driver.swipe(start_x=x*0.2,end_x=x*0.9,start_y=y*0.9,end_y=y*0.9,duration=1000)
print("實現右滑兩次")