先将模拟器启动,然后将你的apk直接丢进去即可安装。

安装完成后,可以通过 <扩展阅读 - 通过apktool反编译apk,然后查看包名和启动界面> 的指引,获取包名(appPackage)和 默认启动界面 (Main activity)。然后就可以开始下面的代码。

test_appium.py

#coding=utf-8
from appium import webdriver

app = {}
app['platformName'] = 'Android'
app['platformVersion'] = '4.4.4'
app['deviceName'] = '192.168.169.101:5555'

#包名
app['appPackage'] = 'com.junte.creditsystem'
# 默认进入的界面 / 视图
app['appActivity'] = '.ui.activity.SplashScreenActivity'

driver = webdriver.Remote('http://localhost:4723/wd/hub', app)

driver.wait_activity('.ui.activity.LoginActivity', 20)
# print(driver.current_activity) # 输出 .ui.activity.LoginActivity
driver.find_element_by_id('com.junte.creditsystem:id/edt_phone').send_keys("123")
driver.find_element_by_id('com.junte.creditsystem:id/edt_pwd').send_keys("321")

# driver.quit()

这里最大的难点和坑,其实是App中各种 activity 的 获取和设置。

这里再次说明一下获取方式,通常来说,我们可以通过 print(driver.current_activity) 来获取当前的 Activity 名称。

但前提是你已经进入这个app了。那么默认启动的 Activity 名称其实也可以通过阅读 <扩展阅读 - 通过apktool反编译apk,然后查看包名和启动界面> 的方式来获取。

值得一提的,如果你没有把握 Activity 的名称。你可以直接把全称输入进去。比如:

com.junte.creditsystem.ui.activity.SplashScreenActivity

com.junte.creditsystem.ui.activity.LoginActivity

results matching ""

    No results matching ""