appium自动化测试,实例分享。
本篇讲述的是考研帮.apk的登录功能的自动化脚本开发。
三个步骤:
1、元素定位
【这里粘贴了部分元素定位,以作示例】
点击同意(条款):
com.tal.kaoyan:id/tip_commit
点击跳过:
com.tal.kaoyan:id/tv_skip
登录界面,点击密码登录
com.tal.kaoyan:id/login_code_touname
点击用户名/邮箱输入框,并传参
com.tal.kaoyan:id/login_email_edittext
点击密码输入框,并传参
com.tal.kaoyan:id/login_password_edittext
点击登录
com.tal.kaoyan:id/login_login_btn
2、我们把capability配置文件封装在capability20201106.py,以便业务脚本appium20201106-01.py调用;
from appium import webdriver
import time
def capability_config():
desired_caps = {
"platformName": "Android",
"deviceName": "127.0.0.1:52001",
"platforVersion": "5.1.1",
"app": r"F:\1python\kaoyanbang_3.7.4.297.apk",
"appPackage": "com.tal.kaoyan",
"appActivity": "com.tal.kaoyan.ui.activity.SplashActivity",
"unicodekeyboard": "True", # 解决中文编码问题
"resetkeybodar": "True", # 输入法守护神
# "noReset": "true"
"noReset": "false"
}
# driver = webdriver.Remote("http://127.0.0.1:4444/wd/hub", desired_caps)
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
driver.implicitly_wait(5) # 隐式等待
return driver
#capability_config()
3、appium20201106-01.py是业务脚本;我们在这个py文件里编写考研帮apk登录的代码
from appium import webdriver
from find_element20201106.capability20201106 import capability_config
import time
from selenium.common.exceptions import NoSuchElementException
# # 点击“暂不使用”用户信息保护及隐私条款
# el1 = driver.find_element_by_id("com.tal.kaoyan:id/tip_cancle")
# el1.click()
driver = capability_config()
print("即将开始旅程...")
# time.sleep(120)
# 点击“同意”条款
def check_tk():
print("检查是否有同意条款的元素")
try:
tiaokuan = driver.find_element_by_id("com.tal.kaoyan:id/tip_commit")
except NoSuchElementException:
print("检查没有同意条款的元素,正常跳过")
else:
print("检查到同意条款的元素,即将点击该元素.....")
tiaokuan.click()
driver.implicitly_wait(30)
def check_skip():
print("检查是否有升级的元素")
try:
r_skip = driver.find_element_by_id("com.tal.kaoyan:id/tv_skip")
except NoSuchElementException:
print("无跳过元素")
else:
print("即将点击跳过按钮")
r_skip.click()
driver.implicitly_wait(30)
def login():
name_login = driver.find_element_by_id("com.tal.kaoyan:id/login_code_touname")
name_login.click()
name_input = driver.find_element_by_id("com.tal.kaoyan:id/login_email_edittext")
name_input.clear()
name_input.send_keys("username")
passwd_input = driver.find_element_by_id("com.tal.kaoyan:id/login_password_edittext")
passwd_input.clear()
passwd_input.send_keys("passwd")
login_btn = driver.find_element_by_id("com.tal.kaoyan:id/login_login_btn")
login_btn.click()
print("用户名或密码错误,请重新输入.....游戏结束")
driver.close_app()
print("app已成功关闭")
# print("即将输入用户名")
# el1 = driver.find_element_by_id("com.tal.kaoyan:id/kylogin_phone_input_phonenum")
# el1.send_keys("18888888888")
# print("即将输入验证码")
# el2 = driver.find_element_by_id("com.tal.kaoyan:id/kylogin_phone_input_code")
# el2.send_keys("1234")
check_tk()
check_skip()
login()