python和Appium云测平台实战

python实现appium代码

from appium import webdriver
import time
from appium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from appium.webdriver.common.mobileby import MobileBy
from appium.webdriver.common.touch_action import TouchAction
from appium.webdriver.common.multi_action import MultiAction


class MyAppDriver:
    def __init__(self):
        self.desired_capabilities = {
                  "platformName": "Android",
                  "platformVersion": "5.1.1",
                  "deviceName": "DemoDevice",
                  "appPackage": "cn.gov.tax.its",
                  "appActivity": "cn.gov.tax.its.MainActivity",
                  "udid": "127.0.0.1:62001"
                }
        self.driver = webdriver.Remote("http://localhost:4723/wd/hub",self.desired_capabilities)

    def app_demo(self):
        mywait = WebDriverWait(self.driver,30,poll_frequency=0.5)
        element = mywait.until(EC.presence_of_element_located((MobileBy.XPATH,"//*[contains(@text,\"确定\")]")))
        element.click()
        mytouch = TouchAction(self.driver)
        for i in range(2):
            mytouch.press(x=500,y=500).move_to(x=200,y=500).release().perform()
            time.sleep(1)
        lijitiyan_element = mywait.until(EC.presence_of_element_located((MobileBy.ANDROID_UIAUTOMATOR,
                                                                         'new UiSelector().text("立即体验")')))

        lijitiyan_element_rect = lijitiyan_element.rect
        print(lijitiyan_element_rect)
        lijitiyan_element_size = lijitiyan_element.size
        print(lijitiyan_element_size)
        lijitiyan_element.click()
        self.driver.keyevent(22)
        self.driver.press_keycode(22)
        
    def get_android_devices(self):
        devices = []
        # 目标是执行 adb devices获取连接到计算机的所有的android设备
        # 用的技术是subprocess
        result = subprocess.Popen("adb devices",stdout=subprocess.PIPE,shell=True)
        # 通过read方式获取执行命令后的结果
        contents = result.stdout.read()
        # 注意为什么要打印contents,目的是为了观察数据的类型,
        print(contents)
        # contents结果是一个字节类型的数据
        # 将字节类型转换为str,使用utf-8解码操作,将其转换为str
        contents1 = contents.decode(encoding="utf-8")
        # 第一种方法,使用re.findall的功能,找到所有符合条件字符串,并将字符串放到list中
        # result = re.findall(r"(.*?)\s+device\s+",contents1)
        # print(result)
        # print(contents1)
        # 第二种方案
        contents1 = contents1.replace("\r\n","#").split("#") # 转成listl类型
        print(contents1)
        # 对List进行遍历
        for item in contents1:
            matched = re.match(r"(.*?)\s+device$",item)
            # 分组的目的是拿里边的内容,通过组取值,看如下代码,决定如何取值
            if matched:
                result = matched.group(1) # 注意再pattern里边用了括号,括号对应的组的编码是1,0代表整个匹配的字符串
                devices.append(result)
                # print(result)
        return devices

if __name__ == '__main__':
    mytest = MyAppDriver().app_demo()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 要使用Appium连接真机进行自动化试,首先需要搭建好Appium环境,并确保已经连接好了手机。在Windows环境下,可以按照以下步骤进行操作: 1. 打开MUMU模拟器,确保模拟器已经启动。 2. 使用快捷键"Win+R"打开运行窗口,输入"cmd"并按下回车键,打开命令提示符窗口。 3. 在命令提示符窗口中输入"appium -a 127.0.0.1 -p 4723 --session-override"命令启动Appium服务器,也可以直接点击Appium客户端打开。 4. 再次使用快捷键"Win+R"打开运行窗口,输入"cmd"并按下回车键,打开命令提示符窗口。 5. 在命令提示符窗口中输入"adb connect 127.0.0.1:7555"命令连接MUMU模拟器。 6. 使用数据线将真机与电脑连接。 7. 在手机上打开设置,找到关于手机选项,连续点击版本号4次,以开启开发者模式。 8. 在开发者选项中,找到并开启USB调试选项,并选择模拟位置信息应用。 9. 打开Appium设置,选择调试应用,并选择USB配置为MIDI(OPPO手机可能需要打开禁止权限监控)。 通过以上步骤,你就可以成功连接真机并使用Appium进行自动化试了。 #### 引用[.reference_title] - *1* [Python+Appium自动化试-appium连接真机启动app](https://blog.csdn.net/Asaasa1/article/details/109332602)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Appium连接真机(有线连接)](https://blog.csdn.net/liangHongl/article/details/126923212)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Appium连接真机](https://blog.csdn.net/qq_41691338/article/details/107365680)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值