一、元素定位
1、代码启动说明(用pycharm启动)
移动自动化启动 app 基础脚本
from appium import webdriver #定义字典变量 desired_caps ={} #字典追加启动参数 desired_caps["platformName"] = "Android" desired_caps["platformVersion"] = "7.1.1"
#安卓不检测内容,随便写,但不能为空 desired_caps["deviceName"] = "192.168.56.101:5555" desired_caps["appPackage"] = "com.android.settings" desired_caps["appActivity"] = ".Settings" #设置中文 desired_caps["nicodeKeyboard"] = True desired_caps["resetKeyboard"] = True #获取driver driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_caps)
初始化参数介绍
2、基础 API (启动应用、获取包名、启动名)
1、应用跳转(如:先打开 设置 应用程序,再跳转到 短信 应用程序)
方法:driver.start_activity(appPackage,appActivity) (分别为:程序包名,程序界面名)
2、获取包名 和 界面名(如:打开设置界面,获取包名和界面名)
方法:
#获取包名:driver.current_package
#获取界面名:driver.current_activity
from appium import webdriver #定义字典变量 desired_caps ={} #字典追加启动参数 desired_caps["platformName"] = "Android" desired_caps["platformVersion"] = "7.1.1" desired_caps["deviceName"] = "192.168.56.101:5555" desired_caps["appPackage"] = "com.android.settings" desired_caps["appActivity"] = ".Settings" #设置中文 desired_caps["nicodeKeyboard"] = True desired_caps["resetKeyboard"] = True #获取driver driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_caps) #启动短信 driver.start_activity("com.android.messaging","ui.conversationlist") #打印包名启动名 print(driver.current_package) print(driver.current_activity)
3、安装、卸载、是否安装、置于后台、关闭
1、安装、卸载、是否安装
from appium import webdriver #定义字典变量 desired_caps ={} #字典追加启动参数 desired_caps["platformName"] = "Android" desired_caps["platformVersion"] = "7.1.1" desired_caps["deviceName"] = "192.168.56.101:5555" desired_caps["appPackage"] = "com.android.settings" desired_caps["appActivity"] = ".Settings" #设置中文 desired_caps["nicodeKeyboard"] = True desired_caps["resetKeyboard"] = True #获取driver driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_caps) #判断应用是否安装 if driver.is_app_installed("com.yunmall.lc"): #卸载 driver.remove_app("com.yunmall.lc") else: #安装 driver.install_app("bain_115.apk") #放置路径,电脑上的路径 #启动设置界面 driver.start_activity("com.android.settings",".Settings") #置于后台 driver.background_app(3) #置于后台3秒 #关闭设置 driver.close_app() #关闭驱动 driver.quit()
2、定位单个元素(使用 uianto 工具截图查看)
from appium import webdriver #定义字典变量 desired_caps ={} #字典追加启动参数 desired_caps["platformName"] = "Android" desired_caps["platformVersion"] = "7.1.1" desired_caps["deviceName"] = "192.168.56.101:5555" desired_caps["appPackage"] = "com.android.settings" desired_caps["appActivity"] = ".Settings" #设置中文 desired_caps["nicodeKeyboard"] = True desired_caps["resetKeyboard"] = True #获取driver driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_caps) #使用id 定位,定位设置里面的放大镜 driver.find_element_by_id("com.android.settings:id/content_parent").click() #使用class 定位输入 hello driver.find_element_by_id("com.android.EditText").send_keys("hello") #点击返回使用xpath driver.find_element_by_xpath("//*[@class='android.widget.ImageButton]").click() #使用name定位 driver.find_element_by_accessibility_id("搜索设置").click() driver.quit()
3、定位一组元素
from appium import webdriver #定义字典变量 desired_caps ={} #字典追加启动参数 desired_caps["platformName"] = "Android" desired_caps["platformVersion"] = "7.1.1" desired_caps["deviceName"] = "192.168.56.101:5555" desired_caps["appPackage"] = "com.android.settings" desired_caps["appActivity"] = ".Settings" #设置中文 desired_caps["nicodeKeyboard"] = True desired_caps["resetKeyboard"] = True #获取driver driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_caps) #获取所有 id 为 com.android.settings:id/title 的元素 els = driver.find_elements_by_id("com.android.settings:id/title") for el in els: print(el.text) els = driver.find_element_by_class_name("android.widget.TextView") for el in els: print(el.text) els = driver.find_elements_by_xpath("*[contains(@text,'设')]") for el in els: print(el.text) driver.quit()