1、配置SDK和JDK
①点击Edit Configurations。
②配置sdk和jdk的路径,点击保存重启。
2、配置Desired Capabilities
①点击Start Server,启动服务。
②点击Start Inspector Session。
③在cmd命令行,分别输入以下命令,用来获取appPackage和appActivity。
adb shell
logcat|grep ActivityManager
④启动app。
⑤然后在dos界面,获取app的Package和Activity。
⑥配置Desired Capabilities,点击Start Session。
{
"platformName": "Android",
"platformVersion": "7.1.1",
"deviceName": "i6310",
"appPackage": "com.jwx.coldchain",
"appActivity": "com.ybzl.vaccine_scan.module.splash.SplashActivity"
}
如上,可以点击右下角的save as进行保存,方便下次复用。
⑦运行成功后,会出现和设备同步的界面。
3、录制脚本
①点击Tap By Coordinates,用于对页面进行操作。
②点击Start Recording,开始录制。
③点击Pause Recording,停止录制。
④录制完成后,会生成脚本,选择自己熟悉的语言。
⑤点击Copy code to clipboard,复制脚本。
⑥打开pycharm,粘贴复制的代码。当然,代码不一定能运行成功,需要自己手动优化。
import time
from appium.webdriver.common.touch_action import TouchAction
caps = {"platformName": "Android", "platformVersion": "7.1.1", "deviceName": "i6310", "appPackage": "com.jwx.coldchain",
"appActivity": "com.ybzl.vaccine_scan.module.splash.SplashActivity", "ensureWebviewsHavePages": True}
driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
el1 = driver.find_element_by_id("com.android.packageinstaller:id/permission_allow_button")
el1.click()
el2 = driver.find_element_by_id("com.android.packageinstaller:id/permission_allow_button")
el2.click()
el3 = driver.find_element_by_id("com.android.packageinstaller:id/permission_allow_button")
el3.click()
driver.implicitly_wait(20) #增加隐式等待
# 找到要连续点击的元素
element = driver.find_element_by_id("com.jwx.coldchain:id/tvTitle")
# 创建一个TouchAction对象
touch_action = TouchAction(driver)
# 循环连续点击五次
for _ in range(5):
touch_action.tap(element).perform() # 点击元素
# 结束TouchAction
touch_action.release()
# driver.implicitly_wait(10)
el4 = driver.find_element_by_id("com.jwx.coldchain:id/btnConfirm")
el4.click()
el5 = driver.find_element_by_id("android:id/button3")
el5.click()
# driver.implicitly_wait(10)
el6 = driver.find_element_by_id("com.jwx.coldchain:id/tvAction")
el6.click()
# driver.implicitly_wait(10)
el7 = driver.find_element_by_id("com.jwx.coldchain:id/etSetIp")
el7.click()
# driver.implicitly_wait(10)
el7.send_keys("http://192.168.66.162:7087")
el8 = driver.find_element_by_id("com.jwx.coldchain:id/btnConfirm")
el8.click()
# driver.implicitly_wait(10)
el9 = driver.find_element_by_id("com.jwx.coldchain:id/etAccount")
el9.click()
el9.send_keys("4403")
# driver.implicitly_wait(10)
el10 = driver.find_element_by_id("com.jwx.coldchain:id/etPassword")
el10.click()
el10.send_keys("SZabc123.")
# driver.implicitly_wait(10)
el11 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup")
el11.click()
el2 = driver.find_element_by_id("com.jwx.coldchain:id/btnLogin")
el2.click()
# driver.quit()