元素定位、元素操作、手势滑屏、其他延伸

发布时间 2023-04-21 16:59:30作者: 新入世界的小白

一、元素定位

  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()