Case1公司路径

# -*- encoding=utf8 -*-
__author__ = "admin、"
from airtest.core.api import *
from airtest.report.report import simple_report
from airtest.report.report import LogToHtml
from airtest.core.helper import G
from threading import Thread
import logging
from random import randint
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
import traceback,sys
import time
from random import choice

auto_setup(__file__,devices=["Android://127.0.0.1:5037/21H77A2020111802"],logdir=r"G:\Airtest")   #logdir默认为None
"""auto_setup(__file__,devices=["Android://127.0.0.1:5037/123","Android://127.0.0.1:5037/456"])多台设备的示例"""
"""https://mp.weixin.qq.com/s?__biz=MzUxMDc4NTkwMA==&mid=2247484283&idx=1&sn=a82976cfe898711cc560592942c52d74&scene=21#wechat_redirect"""
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

logger=logging.getLogger("airtest")
logger.setLevel(logging.ERROR)
class Case(object):

    def __init__(self):
        #初始化设备
        size = poco.get_screen_size()  #(720,1560)
        self.width = size[0]   #屏宽
        self.height = size[1]  #屏高

    def contacts(self):  #联系人
        os.system("adb shell am start -n com.google.android.contacts/com.android.contacts.activities.PeopleActivity")
        try:
            if poco("android.widget.LinearLayout").offspring("android:id/button2").exists:
                poco(text="跳过").click()
                sleep(1)
        except Exception as E:
            print("不需要跳过:%s" %(E))

        if poco(text="搜索联系人").exists():
            poco(text="搜索联系人").click()
            os.system("adb shell input text b")
            name = poco("com.google.android.contacts:id/cliv_name_textview")[0].get_text()
            Judgment_value=isinstance(name,str)    #True
            print(Judgment_value)
            if Judgment_value==True:
                pass
            else:
                print("请检查是否有联系人")
            sleep(1)
        keyevent("home")
    # def chrome_position(self):
    """守护线程"""
    #     try:
    #         if poco(text="www.baidu.com 想使用您设备的位置信息",name="com.android.chrome:id/text").wait(300).exists:
    #             poco(text="允许",name="com.android.chrome:id/positive_button").click()
    #     except:
    #         pass
    #     sleep(5)
    #
    # a_Thread=Thread(target=chrome_position)
    # a_Thread.setDaemon(True)
    # a_Thread.start()
    def chrome(self):    #chorme浏览器
        # size = poco.get_screen_size()  # 获取屏幕长宽比例
        # width = size[0]
        # height = size[1]
        start_pos = (0.5 * self.width,0.8 * self.height)
        end_pos = (0.5 * self.width, 0.2 * self.height)
        start_app("com.android.chrome")
        #os.system("adb shell am start com.android.chrome")
        try:
            poco(text="接受并继续").wait(3)
            poco(text="接受并继续").click()
            poco(text="不用了,谢谢").click()
            poco(text="搜索或输入网址", name="com.android.chrome:id/search_box_text").wait_for_appearance(4)
            poco(text="搜索或输入网址", name="com.android.chrome:id/search_box_text").click()
            text("www.baidu.com")
            sleep(5)
        except:
            pass
        try:
            sleep(6)
            poco("index-kw").click()  # 点击搜索
            text("爱奇艺")
            try:
                if poco(text="m.baidu.com 想使用您设备的位置信息", name="com.android.chrome:id/text").wait(300).exists:
                    poco(text="允许", name="com.android.chrome:id/positive_button").click()
            except:
                pass
            # poco("android.widget.LinearLayout").offspring("com.android.chrome:id/compositor_view_holder").offspring("android.webkit.WebView")[0].offspring("index-form").child("android.view.View").click()

            poco(text="爱奇艺", name="kw").wait_for_appearance(30)  # 超时30s
        except Exception as E:
            print("检查错误:%s" % (E))
        while True:
            if poco(text="下一页", name="android.widget.TextView").exists():  # 一直往下滑动,直到最底页
                break
            else:
                swipe(start_pos, end_pos, duration=0.5)
                sleep(0.5)

        for i in range(10):
            # duration 滑动时长 steps步长  fingers手指头数目
            swipe(end_pos, start_pos, duration=1, steps=6, fingers=1)  # 从继续往上滑动
        sleep(5)

        """滑动失败,待改动"""
        #swipe((width,0.5*height),(0,0.5*height))  #最左端的滑动


        poco("android.widget.LinearLayout").offspring("com.android.chrome:id/menu_button").click()  #添加书签
        sleep(2)
        touch(Template(r"收藏网址.png", record_pos=(-0.018, -0.915), resolution=(720, 1560)))  #书签星标 """书签星标元素无法定位,改用touch"""


        poco(text="爱奇艺", name="kw").click()  #定位爱奇艺输入框,删除,并重新输入
        for i in range(5):
            keyevent("67")
        text("腾讯视频")
        sleep(5)
        touch(Template(r"点击腾讯视频官网.png"))
        tengxun_click = (0.5 * self.width, 0.35 * self.height)
        touch(tengxun_click)
        poco(text="播放", name="android.widget.Button").click()
        for i in range(1, 8):
            keyevent("24")  #加大音量
        for i in range(1, 12):
            keyevent("25") #减少音量

        poco("android.widget.LinearLayout").offspring("com.android.chrome:id/menu_button").click()  # 添加书签
        sleep(2)
        touch(Template(r"收藏网址.png", record_pos=(-0.018, -0.915), resolution=(720, 1560)))  # 书签星标 """书签星标元素无法定位,改用touch"""

    def Clock(self):
        pass
    def Camera(self):
        screen = r"G:\Airtest\screen\\"   #跑失败截图的路径
        report_path = r"G:\Airtest\report\\"  #生成报告的路径
        report_name = report_path + time.strftime("%Y-%m-%d_%H_%M_%S", time.localtime()) + ".html" #报告的名字
        start_app("com.android.camera")  # 启动相机
        self.paizhao = poco("com.android.camera:id/shutter_button")
        try:
            def photo():  # 普通拍照
                poco(text="拍照").click()
                # poco(text="拍照").click()
                for i in range(30):
                    self.paizhao.click()
            def meiyan():  # 美艳
                poco(text="美颜").click()
                for i in range(randint(25,30)):
                    self.paizhao.click()
            def mengyan():
                poco(text="萌颜").click()
                for i in range(30):
                    self.paizhao.click()
            def xuhua():
                poco(text="虚化").click()
                for i in range(30):
                    self.paizhao.click()
            def renxiang():
                poco(text="人像").click()
                for i in range(30):
                    self.paizhao.click()
            def guangjiao():
                poco(text="广角").click()
                for i in range(30):
                    self.paizhao.click()
            def shipin():  # 摄像
                poco(text="摄像").click()
                sleep(2)
                vss = poco("com.android.camera:id/thumbnail_switcher")
                resume = poco("com.android.camera:id/camera_bottom_bar_right_trigger")
                random_action = [vss, resume]  # 1拍照  2暂停
                for i in range(10):
                    self.paizhao.click()  # 开启摄像
                    for q in range(5):
                        choice(random_action).click()
                    sleep(8)
                    self.paizhao.click()  # 停止
            def houzhi():
                photo()
                meiyan()
                xuhua()
                shipin()
                # mengyan()
                # xuhuan()
                renxiang()
            def qianzhi():
                photo()
                meiyan()
                # mengyan()
                # xuhuan()
                renxiang()

            houzhi()  # 后置拍照
            poco("com.android.camera:id/camera_bottom_bar_right_trigger").click()  # 切换 前置
            qianzhi()  # 前置拍照
            shipin()
        except:
            snapshot(filename=screen+time.strftime("%Y-%m-%d_%H_%M_%S", time.localtime()) + ".jpg", msg="跑失败的照片", quality=80)  # 截图

            simple_report(__file__, logpath=r"G:\Airtest", output=report_name)
            clear_app("com.android.camera")
            self.Camera()  # 失败之后重来

        finally:
            simple_report(__file__, logpath=r"G:\Airtest", output=report_name)

        #simple_report()  #1、考虑 将多次跑出的截图进行删除
                          #2、跑多轮出多次报告,合并成一个报告

    def messaging(self):
        """使用多机协作   # G.DEVICE_LIST
        set_current() 参数可以有两种 1、auto_setup的序列例如连接第一台set_current(0)    2、设备号devices"""
            def messaging(self):
        """使用多机协作   # G.DEVICE_LIST
        set_current() 参数可以有两种 1、auto_setup的序列例如连接第一台set_current(0)    2、设备号devices"""
        set_current(0)
        start_app("com.google.android.apps.messaging") #启动短信
        try:
            value=poco("com.google.android.apps.messaging:id/conversation_list_spam_popup_positive_button").attr("text")
            assert_equal(value,"确定","确定打开了短信,点掉短信出现的弹框")  #首次打开才会出现
            poco(text="开始聊天").click()
            text("19914450031")
            messaging_input = poco(name="com.google.android.apps.messaging:id/compose_message_text")
            messaging_input.click()
            messaging_input.set_text("123")
        except:
            pass
    def storage(self):
            pass
    def search(self):
        pass
    def stream_media(self):
        pass
    def GMail(self):
        pass
a=Case()
a.Camera()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值