uiautomator2实例

使用UiAutomator2实现多设备并发测试 首先安装weditor,然后在命令行终端输入weditor即可打开。可以在多个Android移动端去运行。 阅读详情

from pytestreport import TestRunner
import uiautomator2 as u2
import email
import os
import smtplib
import random
import re
import logging
import time
import config
from time import sleep
#from resource.baidumap import BaiduMap
import unittest
#from util import Action, UIChecker, Judge, Common
#from resource import basemap
#from util.DuerOSHelper.interface_element import ElementUse
#from config import case
from email.mime.application import MIMEApplication
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
#from case_ford_phase4_CX727 import map
#from map import test_mapauto

time_now = time.strftime(’%Y%m%d_%H%M%S’, time.localtime())

def get_deviceid():
‘’‘获取设备号’’’
listdevice = ’ ’
command = os.popen(‘adb devices’).readlines()
for i in range(len(command)):
listdevice += command[i]
devices_name = re.findall(’\n(.+?)\t’, listdevice, re.S)
return devices_name

listname = get_deviceid()
deviceid = ‘’.join(listname)
d = u2.connect_usb(deviceid)

#@case.attrs(package_name=ElementUse().codriver_package_name)
class TestStringMethods(unittest.TestCase):

# def setUp(self):
#     """
#             每个测试用例执行之前做操作"""
#     Action.clearLog()
#     # Action.adb_cmd("adb shell pm clear com.baidu.naviauto")
#     # Action.adb_cmd("adb shell am start -n com.baidu.naviauto/.NaviAutoActivity")
#     # Judge.passIf(self,
#     #              UIChecker.checkByPackageNameWait("com.baidu.naviauto"), "启动地图,fail"
#     #              )
#     d.app_start("com.baidu.naviauto")
#
# def tearDown(self):
#     """
#     每个测试用例执行之后做操作"""
#     # Action.adb_cmd("adb shell pm clear com.baidu.naviauto")
#     # Action.adb_cmd("adb shell am force-stop com.baidu.naviauto")
#     d.app_stop("com.baidu.naviauto")

def click_message_page(self):
    '''首页初始化'''
    time.sleep(3)
    d.app_start("com.baidu.naviauto")
    if d(text="接受").wait(timeout=10):
        d(text="接受").click()
    time.sleep(10)
    if d(text="是否继续上次导航?").wait(timeout=5):
        d(text="取消").click()
    time.sleep(2)
    # os.popen('start /b adb logcat -v -d threadtime > /Users/v_wangjiwei01/Desktop/autolog/')

def test_onlineCalculation_searchPages(self):
    '''搜索页的在线算路'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        logging.info("点击历史记录第一条")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/listview_lion_search"]/android.widget.FrameLayout[1]/'
                'android.widget.LinearLayout[1]/android.widget.LinearLayout[2]').click()
        # if d(resourceId="com.baidu.naviauto:id/lion_map_poi_panel_right_distance_layout").exists(timeout=2):
        #     time.sleep(1)
        #     d(resourceId="com.baidu.naviauto:id/lion_map_poi_panel_right_distance_layout").click()
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        # if d(resourceId="com.baidu.naviauto:id/lion_map_poi_panel_right_phone_layout").exists(timeout=2):
        #     time.sleep(1)
        #     d(resourceId="com.baidu.naviauto:id/ll_poi_back").click()
        logging.info("途径点")
        d(resourceId="com.baidu.naviauto:id/ib_lion_search_add").click()
        d(text="输入途经点").click()
        time.sleep(2)
        d(text="输入途经点").send_keys("欢乐谷")
        d(text="搜索").click()
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]').click()
        d(text="搜索").click()
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        logging.info("收藏夹")
        d(text="输入目的地").click()
        d(text="收藏夹").click()
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_list_view"]'
                '/android.widget.LinearLayout[3]').click()  # 点击列表第一个地址
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        d(resourceId="com.baidu.naviauto:id/iv_left").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        logging.info("地图选点")
        d.long_click(550, 860)  # 地图选点
        d(resourceId="com.baidu.naviauto:id/lion_map_poi_panel_right_distance_layout").click()
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        d(resourceId="com.baidu.naviauto:id/ll_poi_back").click()
        time.sleep(3)
        logging.info("语音")
        os.popen("adb shell am broadcast -a duerosrun -n com.baidu.che.codriver/"
                 "com.baidu.che.codriver.debug.QueryReceiver --es enQuery 导航到天安门")
        time.sleep(5)
        d(resourceId="com.baidu.che.codriver:id/v_BaiduMic").exists(timeout=6)
        os.popen("adb shell am broadcast -a duerosrun -n com.baidu.che.codriver/"
                 "com.baidu.che.codriver.debug.QueryReceiver --es enQuery 第一个")
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_onlineCalculation_searchPages_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_onlineCalculation_searchPages_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_offlineCalculation_searchPages(self):
    '''搜索页的离线算路'''
    try:
        self.click_message_page()
        logging.info("点击个人设置")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(text="导航设置").click()
        d(scrollable=True).scroll(steps=10)
        logging.info("关闭在线算路优先")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/bt_routplan_mode"]/android.widget.LinearLayout[1]/'
                'android.widget.RadioGroup[1]/android.widget.RadioButton[2]').click()
        d(resourceId="com.baidu.naviauto:id/btnBack").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        logging.info("点击历史记录第一条")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/listview_lion_search"]/android.widget.FrameLayout[1]/'
                'android.widget.LinearLayout[1]/android.widget.LinearLayout[2]').click()
        d(resourceId="com.baidu.naviauto:id/lion_map_poi_panel_right_distance_layout").click()
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        d(resourceId="com.baidu.naviauto:id/ll_poi_back").click()
        logging.info("途径点")
        d(resourceId="com.baidu.naviauto:id/ib_lion_search_add").click()
        d(text="输入途经点").click()
        time.sleep(2)
        d(text="输入途经点").send_keys("欢乐谷")
        d(text="搜索").click()
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]').click()
        d(text="搜索").click()
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        # d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        logging.info("收藏夹")
        d(text="输入目的地").click()
        d(text="收藏夹").click()
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_list_view"]'
                '/android.widget.LinearLayout[3]').click()  # 点击列表第一个地址
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        d(resourceId="com.baidu.naviauto:id/iv_left").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        logging.info("地图选点")
        d.long_click(550, 860)  # 地图选点
        d(resourceId="com.baidu.naviauto:id/lion_map_poi_panel_right_distance_layout").click()
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        d(resourceId="com.baidu.naviauto:id/ll_poi_back").click()
        time.sleep(3)
        logging.info("语音")
        os.popen("adb shell am broadcast -a duerosrun -n com.baidu.che.codriver/"
                 "com.baidu.che.codriver.debug.QueryReceiver --es enQuery 导航到天安门")
        time.sleep(5)
        d(resourceId="com.baidu.che.codriver:id/v_BaiduMic").exists(timeout=6)
        time.sleep(3)
        os.popen("adb shell am broadcast -a duerosrun -n com.baidu.che.codriver/"
                 "com.baidu.che.codriver.debug.QueryReceiver --es enQuery 第一个")
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_offlineCalculation_searchPages_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_offlineCalculation_searchPages_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_goHome_goCompany(self):
    '''回家、去公司'''
    try:
        self.click_message_page()
        logging.info("点击个人设置")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(text="导航设置").click()
        d(scrollable=True).scroll(steps=10)
        logging.info("打开在线算路优先")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/bt_routplan_mode"]/android.widget.LinearLayout[1]/'
                'android.widget.RadioGroup[1]/android.widget.RadioButton[1]').click()
        d(resourceId="com.baidu.naviauto:id/btnBack").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="回家").click()
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        d(text="去公司").click()
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        logging.info("点击个人设置")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(text="导航设置").click()
        d(scrollable=True).scroll(steps=10)
        logging.info("关闭在线算路优先")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/bt_routplan_mode"]/android.widget.LinearLayout[1]/'
                'android.widget.RadioGroup[1]/android.widget.RadioButton[2]').click()
        d(resourceId="com.baidu.naviauto:id/btnBack").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="回家").click()
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="去公司").click()
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_goHome_goCompany_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_goHome_goCompany_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_search_cityName(self):
    '''搜索poi出现poi列表,点击后发起算路'''
    try:
        self.click_message_page()
        logging.info("点击个人设置")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(text="导航设置").click()
        d(scrollable=True).scroll(steps=10)
        logging.info("打开在线算路优先")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/bt_routplan_mode"]/android.widget.LinearLayout[1]/'
                'android.widget.RadioGroup[1]/android.widget.RadioButton[1]').click()
        d(resourceId="com.baidu.naviauto:id/btnBack").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("天津")
        d(text="搜索").click()
        d(text="1. 天津市").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/btn_poi_gonavi").click()
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        d(resourceId="com.baidu.naviauto:id/ll_search_result_back").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        logging.info("点击个人设置")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(text="导航设置").click()
        d(scrollable=True).scroll(steps=10)
        logging.info("关闭在线算路优先")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/bt_routplan_mode"]/android.widget.LinearLayout[1]/'
                'android.widget.RadioGroup[1]/android.widget.RadioButton[2]').click()
        d(resourceId="com.baidu.naviauto:id/btnBack").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("天津")
        d(text="搜索").click()
        d(text="1. 天津市").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/btn_poi_gonavi").click()
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        d(resourceId="com.baidu.naviauto:id/ll_search_result_back").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_search_cityName_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_search_cityName_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_city_calculateRoad(self):
    '''市内算路'''
    try:
        self.click_message_page()
        logging.info("点击个人设置")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(text="导航设置").click()
        d(scrollable=True).scroll(steps=10)
        logging.info("打开在线算路优先")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/bt_routplan_mode"]/android.widget.LinearLayout[1]/'
                'android.widget.RadioGroup[1]/android.widget.RadioButton[1]').click()
        d(resourceId="com.baidu.naviauto:id/btnBack").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        time.sleep(2)
        d(text="输入目的地").send_keys("香山")
        d(text="搜索").click()
        d(text="1. 香山公园").exists(timeout=3)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[2]').click()
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        d(resourceId="com.baidu.naviauto:id/ll_search_result_back").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        logging.info("点击个人设置")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(text="导航设置").click()
        d(scrollable=True).scroll(steps=10)
        logging.info("关闭在线算路优先")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/bt_routplan_mode"]/android.widget.LinearLayout[1]/'
                'android.widget.RadioGroup[1]/android.widget.RadioButton[2]').click()
        d(resourceId="com.baidu.naviauto:id/btnBack").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("香山")
        d(text="搜索").click()
        d(text="1. 香山公园").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/btn_poi_gonavi").click()
        d(text="开始导航").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/iv_back").click()
        d(resourceId="com.baidu.naviauto:id/ll_search_result_back").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_city_calculateRoad_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_city_calculateRoad_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_no_high_speed(self):
    '''不走高速算路'''
    try:
        self.click_message_page()
        logging.info("点击个人设置")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(text="导航设置").click()
        d(scrollable=True).scroll(steps=10)
        logging.info("打开在线算路优先")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/bt_routplan_mode"]/android.widget.LinearLayout[1]/'
                'android.widget.RadioGroup[1]/android.widget.RadioButton[1]').click()
        d(resourceId="com.baidu.naviauto:id/btnBack").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("北京野生动物园")
        d(text="搜索").click()
        d(text="1. 北京野生动物园").exists(timeout=3)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[2]').click()
        time.sleep(2)
        d.click(220, 900)
        d(text="开始导航").exists(timeout=3)
        d(text="开始导航").click()
        if d(text="沿途搜加油站").exists(timeout=3):
            d(resourceId="com.baidu.naviauto:id/img_close").click()
        logging.info("点击更多设置")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
        logging.info("设置偏好")
        d(text="偏好").click()
        d(text="不走高速").click()
        time.sleep(3)
        logging.info("退出导航")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_quit_ly").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_no_high_speed_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_no_high_speed_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_high_speed_priority(self):
    '''高速优先算路'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("北京野生动物园")
        d(text="搜索").click()
        d(text="1. 北京野生动物园").exists(timeout=3)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[2]').click()
        time.sleep(2)
        d.click(220, 900)
        d(text="开始导航").exists(timeout=3)
        d(text="开始导航").click()
        if d(text="沿途搜加油站").exists(timeout=3):
            d(resourceId="com.baidu.naviauto:id/img_close").click()
        logging.info("点击更多设置")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
        logging.info("设置偏好")
        d(text="偏好").click()
        d(text="高速优先").click()
        time.sleep(3)
        logging.info("退出导航")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_quit_ly").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_high_speed_priority_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_high_speed_priority_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_avoid_congestion(self):
    '''躲避拥堵算路'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("北京野生动物园")
        d(text="搜索").click()
        d(text="1. 北京野生动物园").exists(timeout=3)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[2]').click()
        time.sleep(2)
        d.click(220, 900)
        d(text="开始导航").exists(timeout=3)
        d(text="开始导航").click()
        if d(text="沿途搜加油站").exists(timeout=3):
            d(resourceId="com.baidu.naviauto:id/img_close").click()
        logging.info("点击更多设置")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
        logging.info("设置偏好")
        d(text="偏好").click()
        d(text="躲避拥堵").click()
        time.sleep(3)
        logging.info("退出导航")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_quit_ly").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_avoid_congestion_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_avoid_congestion_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_priority_time(self):
    '''时间优先算路'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("北京野生动物园")
        d(text="搜索").click()
        d(text="1. 北京野生动物园").exists(timeout=3)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[2]').click()
        time.sleep(2)
        d.click(220, 900)
        d(text="开始导航").exists(timeout=3)
        d(text="开始导航").click()
        if d(text="沿途搜加油站").exists(timeout=3):
            d(resourceId="com.baidu.naviauto:id/img_close").click()
        logging.info("点击更多设置")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
        logging.info("设置偏好")
        d(text="偏好").click()
        d(text="时间优先").click()
        time.sleep(3)
        logging.info("退出导航")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_quit_ly").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_priority_time_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_priority_time_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_intelligent_recommendation(self):
    '''智能推荐算路'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("北京野生动物园")
        d(text="搜索").click()
        d(text="1. 北京野生动物园").exists(timeout=3)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[2]').click()
        time.sleep(2)
        d.click(220, 900)
        d(text="开始导航").exists(timeout=3)
        d(text="开始导航").click()
        if d(text="沿途搜加油站").exists(timeout=3):
            d(resourceId="com.baidu.naviauto:id/img_close").click()
        logging.info("点击更多设置")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
        logging.info("设置偏好")
        d(text="偏好").click()
        d(text="智能推荐").click()
        time.sleep(3)
        logging.info("退出导航")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_quit_ly").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_intelligent_recommendation_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_intelligent_recommendation_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_selectionPage_detailsPage_information(self):
    '''路线选择页路线信息与路线详情页信息一致'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("北京野生动物园")
        d(text="搜索").click()
        d(text="1. 北京野生动物园").exists(timeout=3)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]').click()
        d(text="1.北京野生动物园").exists(timeout=3)
        d(resourceId="com.baidu.naviauto:id/ll_poi_back").click()
        d(resourceId="com.baidu.naviauto:id/ll_search_result_back").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_selectionPage_detailsPage_information_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_selectionPage_detailsPage_information_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_openClose_naviSound(self):
    '''开启/关闭导航声音'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("北京野生动物园")
        d(text="搜索").click()
        d(text="1. 北京野生动物园").exists(timeout=3)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[2]').click()
        time.sleep(2)
        d.click(220, 900)
        d(text="开始导航").exists(timeout=3)
        d(text="开始导航").click()
        if d(text="沿途搜加油站").exists(timeout=3):
            d(resourceId="com.baidu.naviauto:id/img_close").click()
        logging.info("点击底图")
        d.click(1150, 640)
        logging.info("点击关闭导航声音")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_cp_voice_iv").click()
        time.sleep(3)
        # logging.info("抓取语音播报log")
        # os.popen(f'adb -s {deviceid} logcat -t 10000 threadtime  > /wjw/project-work/auto_framework/log/speech.txt')
        # logging.info("查找文件中的已关闭导航关键词")
        logging.info("点击底图")
        d.click(1150, 640)
        logging.info("点击开启导航声音")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_cp_voice_iv").click()
        time.sleep(2)
        logging.info("退出导航")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_quit_ly").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_openClose_naviSound_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_openClose_naviSound_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_route_preference(self):
    '''路线偏好(智能推荐/时间邮件/距离优先/躲避拥堵/不走高速/高速优先都可切换成功,且离线不能切换)'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("北京野生动物园")
        d(text="搜索").click()
        d(text="1. 北京野生动物园").exists(timeout=3)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[2]').click()
        time.sleep(2)
        d.click(220, 900)
        d(text="开始导航").exists(timeout=3)
        d(text="开始导航").click()
        if d(text="沿途搜加油站").exists(timeout=3):
            d(resourceId="com.baidu.naviauto:id/img_close").click()
        preference = ['智能推荐', '时间优先', '少收费', '躲避拥堵', '不走高速', '高速优先']
        for i in preference:
            logging.info("点击更多设置")
            d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
            logging.info("设置偏好")
            d(text="偏好").click()
            d(text=i).click()
            time.sleep(3)
        logging.info("关闭网络")
        os.popen('adb shell svc wifi disable')
        time.sleep(2)
        logging.info("点击更多设置")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
        logging.info("设置偏好")
        d(text="偏好").click()
        if d(text="智能推荐").exists(timeout=2):
            return False
        else:
            pass
        os.popen('adb shell svc wifi enable')
        time.sleep(5)
        logging.info("退出导航")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_quit_ly").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_route_preference_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_route_preference_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_incident_reporting(self):
    '''事件上报'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("北京野生动物园")
        d(text="搜索").click()
        d(text="1. 北京野生动物园").exists(timeout=3)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[2]').click()
        time.sleep(2)
        d.click(220, 900)
        d(text="开始导航").exists(timeout=3)
        d(text="开始导航").click()
        if d(text="沿途搜加油站").exists(timeout=3):
            d(resourceId="com.baidu.naviauto:id/img_close").click()
        incident_list = ["事故", "拥堵", "危险", "修路", "封路", "道路报错"]
        for incident in incident_list:
            logging.info("点击底图任意位置")
            d.click(1340, 770)
            time.sleep(1)
            logging.info("点击事件上报按键")
            d(resourceId="com.baidu.naviauto:id/bnav_rg_cp_iv_ugc_report").click()
            time.sleep(1)
            logging.info("点击事件")
            d(text=incident).click()
            time.sleep(1)
            logging.info("点击上报按键")
            d(resourceId="com.baidu.naviauto:id/navi_common_dialog_submit").click()
            d(text="感谢您的反馈!").exists(timeout=5)
        logging.info("退出导航")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_quit_ly").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_incident_reporting_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_incident_reporting_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_searchAlong_theWay(self):
    '''沿途搜'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("北京野生动物园")
        d(text="搜索").click()
        d(text="1. 北京野生动物园").exists(timeout=3)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[2]').click()
        time.sleep(2)
        d.click(220, 900)
        d(text="开始导航").exists(timeout=3)
        d(text="开始导航").click()
        if d(text="沿途搜加油站").exists(timeout=3):
            d(resourceId="com.baidu.naviauto:id/img_close").click()
        way_list = ["加油站", "充电站", "厕所", "银行ATM", "酒店住宿", "旅游景点"]
        for route_search in way_list:
            logging.info("点击更多设置")
            d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
            time.sleep(1)
            d(text="沿途搜").click()
            d(text=route_search).click()
            d(text="清空结果并继续导航").exists(timeout=5)
            d(text="清空结果并继续导航").click()
            time.sleep(1)
        logging.info("关闭网络")
        os.popen('adb shell svc wifi disable')
        time.sleep(2)
        logging.info("点击更多设置")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
        time.sleep(1)
        d(text="沿途搜").click()
        if d(text="加油站").exists(timeout=3):
            return False
        logging.info("打开网络")
        os.popen('adb shell svc wifi enable')
        time.sleep(2)
        logging.info("退出导航")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_quit_ly").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_searchAlong_theWay_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_searchAlong_theWay_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_global_mode_switch(self):
    '''全览模式切换'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("北京野生动物园")
        d(text="搜索").click()
        d(text="1. 北京野生动物园").exists(timeout=3)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[2]').click()
        time.sleep(2)
        d.click(220, 900)
        d(text="开始导航").exists(timeout=3)
        d(text="开始导航").click()
        if d(text="沿途搜加油站").exists(timeout=3):
            d(resourceId="com.baidu.naviauto:id/img_close").click()
        logging.info("点击更多设置")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
        time.sleep(1)
        logging.info("点击全览小窗")
        d(text="全览小窗").click()
        if d(resourceId="com.baidu.naviauto:id/bnav_rg_cp_fullview_mode_btn").exists(timeout=3):
            pass
        logging.info("点击更多设置")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
        time.sleep(1)
        logging.info("点击路况条")
        d(text="路况条").click()
        if d(resourceId="com.baidu.naviauto:id/bnav_rg_cp_map_switch").exists(timeout=3):
            pass
        logging.info("退出导航")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_quit_ly").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_global_mode_switch_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_global_mode_switch_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_page_display(self):
    '''导航语音页面显示'''
    try:
        self.click_message_page()
        logging.info("点击个人设置")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(text="导航设置").click()
        logging.info("点击导航语音")
        d(text="导航语音").click()
        logging.info("查看UI展示")
        if d(text="导航语音").exists(timeout=3):
            pass
        voicelist = ['普通话', '粤语导航语音', 'angel萌', '百度CEO 李彦宏', '萌萌哒']
        for i in voicelist:
            if d(text=i).exists(timeout=3):
                pass
        if d(resourceId="com.baidu.naviauto:id/btnBack").exists(timeout=3):
            pass
        logging.info("切换语音")
        if d(text="使用").exists(timeout=2):
            pass
        else:
            d.xpath('//*[@resource-id="com.baidu.naviauto:id/listview_voice"]/android.widget.LinearLayout[2]/'
                    'android.widget.RelativeLayout[1]/android.widget.ImageView[1]').click()
            d(text="使用").exists(timeout=10)
        d(text="普通话").click()
        d(text="取消").exists(timeout=5)
        d(text="粤语导航语音").long_click()
        d(text="确定").click()
        time.sleep(2)
        d.press("back")
        time.sleep(1)
        d.press("back")
        time.sleep(1)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        os.popen("adb shell input keyevent 4")
        d(text="退出导航").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_page_display_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_page_display_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_clickAgree_disclaimerPage(self):
    '''免责声明页点击同意'''
    try:
        logging.info("打开导航")
        d.app_start("com.baidu.naviauto")
        d(text="接受").click()
        logging.info("导航界面")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").exists(timeout=5)
        os.popen("adb shell input keyevent 4")
        d(text="退出导航").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_clickAgree_disclaimerPage_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_clickAgree_disclaimerPage_{time_now}.txt')
        print(e)
        return False
    return True

def test_clickNoAgree_disclaimerPage(self):
    '''免责声明页点击不同意'''
    try:
        logging.info("打开导航")
        d.app_start("com.baidu.naviauto")
        d(text="拒绝").click()
        logging.info("home界面")
        d(text="百度地图").exists(timeout=5)
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_clickNoAgree_disclaimerPage_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_clickNoAgree_disclaimerPage_{time_now}.txt')
        print(e)
        return False
    return True

def test_set_home_address(self):
    '''设置家地址'''
    try:
        logging.info("打开导航")
        d.app_start("com.baidu.naviauto")
        d(text="接受").click()
        logging.info("导航界面")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").exists(timeout=5)
        time.sleep(2)
        logging.info("语音唤醒指令")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 设置家地址')
        d(text="请说出您家的地址").exists(timeout=10)
        time.sleep(2)
        logging.info("语音输入:世界之窗")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 世界之窗')
        d(text="已设置成功,将为您发起导航").exists(timeout=10)
        time.sleep(2)
        d(resourceId="com.baidu.che.codriver:id/voice_shut_down_button").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_set_home_address_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_set_home_address_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True


def test_set_company_address(self):
    '''设置公司地址'''
    try:
        self.click_message_page()
        logging.info("语音唤醒指令")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 小度小度,设置公司地址')
        d(text="请说出您公司的地址").exists(timeout=10)
        logging.info("语音输入:百度大厦")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 百度大厦')
        d(text="已设置成功,将为您发起导航").exists(timeout=10)
        d(resourceId="com.baidu.che.codriver:id/voice_shut_down_button").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_set_home_address_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_set_home_address_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_switch_browse_mode(self):
    '''语音切换全览模式'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("北京野生动物园")
        d(text="搜索").click()
        d(text="1. 北京野生动物园").exists(timeout=3)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[2]').click()
        time.sleep(2)
        d.click(220, 900)
        d(text="开始导航").exists(timeout=3)
        d(text="开始导航").click()
        if d(text="沿途搜加油站").exists(timeout=3):
            d(resourceId="com.baidu.naviauto:id/img_close").click()
        logging.info("语音唤醒指令")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 查看全程')
        time.sleep(5)
        # logging.info("检查语音已展示路线全览")
        logging.info("退出导航")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_quit_ly").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_switch_browse_mode_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_switch_browse_mode_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_input_keywords(self):
    '''输入关键字'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("北京野生动物园")
        logging.info("显示X按钮和搜索按钮")
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_delete").exists(timeout=3)
        d(text="搜索").exists(timeout=3)
        d.press("back")
        time.sleep(1)
        d.press("back")
        time.sleep(1)
        d.press("back")
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_input_keywords_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_input_keywords_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_keyword_search(self):
    '''关键字搜索'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        time.sleep(2)
        d(text="输入目的地").send_keys("动物园")
        d(text="搜索").click()
        logging.info("进入POI列表页")
        d(resourceId="com.baidu.naviauto:id/btn_poi_gonavi").exists(timeout=8)
        d.press("back")
        time.sleep(1)
        d.press("back")
        time.sleep(1)
        d.press("back")
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_keyword_search_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_keyword_search_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_click_sug_search(self):
    '''点击sug开始搜索'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        time.sleep(2)
        d(text="输入目的地").send_keys("北京野生动物园")
        logging.info("点击sug开始搜索")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/listview_lion_search"]/'
                'android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]').click()
        d(resourceId="com.baidu.naviauto:id/lion_map_poi_panel_right_phone_layout").exists(timeout=5)
        d.press("back")
        time.sleep(1)
        d.press("back")
        time.sleep(1)
        d.press("back")
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_click_sug_search_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_click_sug_search_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_passing_point_icon(self):
    '''搜索页点击添加途经点图标'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        logging.info("点击添加途径点图标")
        d(resourceId="com.baidu.naviauto:id/ib_lion_search_add").click()
        logging.info("途径点页面")
        d(text="输入途经点").exists(timeout=3)
        d(text="输入目的地").exists(timeout=3)
        d(text="搜索").exists(timeout=3)
        d.press("back")
        time.sleep(1)
        d.press("back")
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_passing_point_icon_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_passing_point_icon_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_routePoint_inputDestination(self):
    '''途径点点击输入目的地的输入框,进入目的地的输入页面'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        logging.info("点击添加途径点图标")
        d(resourceId="com.baidu.naviauto:id/ib_lion_search_add").click()
        logging.info("途径点页面")
        d(text="输入目的地").click()
        d(text="更多").exists(timeout=3)
        d.press("back")
        time.sleep(1)
        d.press("back")
        time.sleep(1)
        d.press("back")
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_routePoint_inputDestination_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_routePoint_inputDestination_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_team_management(self):
    '''队员队伍管理'''
    try:
        self.click_message_page()
        logging.info("点击个人设置")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(text="组队出行").click()
        logging.info("创建队伍")
        d(text="创建队伍").click()
        d(text="我的队伍").exists(timeout=10)
        logging.info("点击右上角管理按钮")
        d(resourceId="com.baidu.naviauto:id/ib_team_manage").click()
        d(text="管理").exists(timeout=2)
        d(text="车队名称").exists(timeout=2)
        d(text="我的昵称").exists(timeout=2)
        d(resourceId="com.baidu.naviauto:id/tv_expire_time").exists(timeout=2)
        logging.info("解散队伍")
        d(text="解散队伍").click()
        d(text="确认").click()
        time.sleep(5)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_team_management_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_team_management_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_team_name_modification(self):
    '''队名修改'''
    try:
        self.click_message_page()
        logging.info("点击个人设置")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(text="组队出行").click()
        logging.info("创建队伍")
        d(text="创建队伍").click()
        d(text="我的队伍").exists(timeout=10)
        logging.info("点击右上角管理按钮")
        d(resourceId="com.baidu.naviauto:id/ib_team_manage").click()
        d(resourceId="com.baidu.naviauto:id/custom_editable_operate").click()
        d(resourceId="com.baidu.naviauto:id/custom_editable_content").clear_text()
        d(resourceId="com.baidu.naviauto:id/custom_editable_content").send_keys("123")
        os.popen('adb shell input keyevent 4')
        time.sleep(5)
        logging.info("解散队伍")
        d(text="解散队伍").click()
        d(text="确认").click()
        time.sleep(5)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_team_name_modification_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_team_name_modification_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_favorites_set_company_address(self):
    '''设置公司地址'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        logging.info("点击收藏夹")
        d(text="收藏夹").click()
        if not d(text="点击设置").exists(timeout=2):
            d(resourceId="com.baidu.naviauto:id/ib_right").click()
            d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_list_view"]/android.widget.LinearLayout[2]/'
                    'android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]').click()
            d.press("back")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_list_view"]/'
                'android.widget.LinearLayout[2]/android.widget.LinearLayout[1]').click()
        time.sleep(2)
        d(text="输入目的地").send_keys("北京欢乐谷")
        d(text="搜索").click()
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/'
                'android.widget.RelativeLayout[1]/android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]').click()
        d(resourceId="com.baidu.naviauto:id/ib_right0").exists(timeout=5)
        time.sleep(2)
        logging.info("点击公司地址发起导航")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_list_view"]/'
                'android.widget.LinearLayout[2]/android.widget.LinearLayout[1]').click()
        d(text="添加途经点").exists(timeout=10)
        d.press("back")
        time.sleep(1)
        d.press("back")
        time.sleep(1)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_favorites_set_company_address_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_favorites_set_company_address_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_favorites_set_home_address(self):
    '''设置家地址'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        logging.info("点击收藏夹")
        d(text="收藏夹").click()
        if not d(text="点击设置").exists(timeout=2):
            d(resourceId="com.baidu.naviauto:id/ib_right").click()
            d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_list_view"]/android.widget.LinearLayout[1]/'
                    'android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]').click()
            d.press("back")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_list_view"]/'
                'android.widget.LinearLayout[1]/android.widget.LinearLayout[1]').click()
        time.sleep(2)
        d(text="输入目的地").send_keys("天安门")
        d(text="搜索").click()
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/'
                'android.widget.RelativeLayout[1]/android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]').click()
        d(resourceId="com.baidu.naviauto:id/ib_right0").exists(timeout=5)
        time.sleep(2)
        logging.info("点击家地址发起导航")
        time.sleep(5)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_list_view"]/'
                'android.widget.LinearLayout[1]/android.widget.LinearLayout[1]').click()
        d(text="添加途经点").exists(timeout=10)
        d.press("back")
        time.sleep(1)
        d.press("back")
        time.sleep(1)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_favorites_set_home_address_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_favorites_set_home_address_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_favorites_del_home_address(self):
    '''删除家地址'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        logging.info("点击收藏夹")
        d(text="收藏夹").click()
        logging.info("点击编辑按键")
        d(resourceId="com.baidu.naviauto:id/ib_right").click()
        logging.info("点击删除")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_list_view"]/android.widget.LinearLayout[1]/'
                'android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]').click()
        time.sleep(2)
        d(text="完成").click()
        time.sleep(2)
        d.press("back")
        time.sleep(1)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_favorites_del_home_address_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_favorites_del_home_address_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_favorites_del_company_address(self):
    '''删除公司地址'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        logging.info("点击收藏夹")
        d(text="收藏夹").click()
        logging.info("点击编辑按键")
        d(resourceId="com.baidu.naviauto:id/ib_right").click()
        logging.info("点击删除")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_list_view"]/android.widget.LinearLayout[2]/'
                'android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]').click()
        time.sleep(2)
        d(text="完成").click()
        time.sleep(2)
        d.press("back")
        time.sleep(1)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_favorites_del_company_address_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_favorites_del_company_address_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_del_favorites_address(self):
    '''删除收藏地址'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        logging.info("点击收藏夹")
        d(text="收藏夹").click()
        logging.info("点击编辑按键")
        d(resourceId="com.baidu.naviauto:id/ib_right").click()
        logging.info("删除收藏地址")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_list_view"]/'
                'android.widget.LinearLayout[3]/android.widget.LinearLayout[1]/android.widget.LinearLayout[2]').click()
        time.sleep(3)
        d.press("back")
        time.sleep(1)
        d.press("back")
        time.sleep(1)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_del_favorites_address_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_del_favorites_address_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report(self):
    '''泛需求-我要上报'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 我要上报')
        d(text="请选择一种类型进行上报,你需要选择第几个?").exists(timeout=5)
        time.sleep(2)
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 第一个')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report5(self):
    '''泛需求-我要上报-施工多轮'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 我要上报')
        d(text="请选择一种类型进行上报,你需要选择第几个?").exists(timeout=5)
        time.sleep(2)
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 第五个')
        time.sleep(2)
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 第一个')
        # d(resourceId="com.baidu.che.codriver:id/voice_shut_down_button").click()
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report5_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report5_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report1(self):
    '''精准需求-单槽位-上报拥堵'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 上报拥堵')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report1_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report1_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report2(self):
    '''精准需求-单槽位-上报危险'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 上报危险')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report2_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report2_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report3(self):
    '''精准需求-单槽位-上报路上有障碍物'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 上报路上有障碍物')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report3_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report3_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report4(self):
    '''精准需求-单槽位-路上有积水'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 路上有积水')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report4_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report4_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report6(self):
    '''精准需求-单槽位-火灾上报'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 火灾上报')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report6_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report6_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report7(self):
    '''精准需求-单槽位-有车辆逆行'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 有车辆逆行')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report7_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report7_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report8(self):
    '''精准需求-单槽位-路上有人'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 路上有人')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report8_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report8_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report9(self):
    '''精准需求-单槽位-路上有动物'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 路上有动物')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report9_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report9_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report10(self):
    '''精准需求-单槽位-发现路上有东西'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 发现路上有东西')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report10_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report10_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report11(self):
    '''精准需求-单槽位-发现危险驾驶'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 发现危险驾驶')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report11_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report11_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report12(self):
    '''精准需求-单槽位-发现危险驾驶'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 上报事故')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report12_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report12_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report13(self):
    '''精准需求-单槽位-路上施工'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 路上施工')
        time.sleep(3)
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 第一个')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report13_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report13_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report14(self):
    '''精准需求-单槽位-封路了'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 封路了')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report14_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report14_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report15(self):
    '''精准需求-多槽位-前方拥堵'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 前方拥堵')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report15_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report15_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report17(self):
    '''精准需求-多槽位-前方有危险'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 前方有危险')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report17_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report17_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report18(self):
    '''精准需求-多槽位-前方有障碍物'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 前方有障碍物')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report18_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report18_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report19(self):
    '''精准需求-多槽位-前方有积水'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 前方有积水')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report19_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report19_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report20(self):
    '''精准需求-多槽位-前方有火灾'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 前方有火灾')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report20_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report20_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report21(self):
    '''精准需求-多槽位-前方有车辆逆行'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 前方有车辆逆行')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report21_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report21_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report22(self):
    '''精准需求-多槽位-前方路上有人'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 前方路上有人')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report22_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report22_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report23(self):
    '''精准需求-多槽位-前方路上有动物'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 前方路上有动物')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report23_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report23_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report24(self):
    '''精准需求-多槽位-前方有危险驾驶'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 前方有危险驾驶')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report24_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report24_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report25(self):
    '''精准需求-多槽位-前方有事故'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 前方有事故')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report25_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report25_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report26(self):
    '''精准需求-多槽位-前方施工'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 前方施工')
        time.sleep(3)
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 第一个')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report26_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report26_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_i_want_report27(self):
    '''精准需求-多槽位-前方封路'''
    try:
        self.click_message_page()
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 前方封路')
        d(text="上报成功,感谢你的反馈,我们会尽快处理的").exists(timeout=5)
        time.sleep(10)
    except Exception as e:
        d.screenshot(f'test_i_want_report27_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_i_want_report27_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_delete_voice_package(self):
    '''删除语音包'''
    try:
        self.click_message_page()
        logging.info("点击个人设置")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(text="导航设置").click()
        logging.info("点击导航语音")
        d(text="导航语音").click()
        logging.info("下载多个语音包")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/listview_voice"]/'
                'android.widget.LinearLayout[2]/android.widget.RelativeLayout[1]/android.widget.ImageView[1]').click()
        time.sleep(1)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/listview_voice"]/'
                'android.widget.LinearLayout[5]/android.widget.RelativeLayout[1]/android.widget.ImageView[1]').click()
        d(text="使用").exists(timeout=10)
        time.sleep(2)
        logging.info("删除正在下载中的语音包")
        d(text="萌萌哒").long_click()
        d(text="确定").click()
        time.sleep(2)
        d(text="普通话").click()
        d(text="取消").exists(timeout=5)
        d(text="粤语导航语音").long_click()
        d(text="确定").click()
        time.sleep(2)
        d.press("back")
        time.sleep(1)
        d.press("back")
        time.sleep(1)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_delete_voice_package_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_delete_voice_package_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_download_voice_package(self):
    '''正常网络下,各类都能正常下载完成,语音使用正常'''
    try:
        self.click_message_page()
        logging.info("点击个人设置")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(text="导航设置").click()
        logging.info("点击导航语音")
        d(text="导航语音").click()
        logging.info("下载所有语音包")
        d(text="粤语导航语音").click()
        d(text="使用")[0].exists(timeout=120)
        time.sleep(2)
        d(text="angel萌").click()
        d(text="使用")[1].exists(timeout=120)
        time.sleep(2)
        d(text="百度CEO 李彦宏").click()
        d(text="使用")[2].exists(timeout=120)
        time.sleep(2)
        d(text="萌萌哒").click()
        d(text="使用")[3].exists(timeout=120)
        time.sleep(2)
        logging.info("删除所有下载语音包")
        d(text="普通话").click()
        time.sleep(2)
        d(text="粤语导航语音").long_click()
        d(text="确定").click()
        time.sleep(2)
        d(text="angel萌").long_click()
        d(text="确定").click()
        time.sleep(2)
        d(text="百度CEO 李彦宏").long_click()
        d(text="确定").click()
        time.sleep(2)
        d(text="萌萌哒").long_click()
        d(text="确定").click()
        time.sleep(2)
        d.press("back")
        time.sleep(1)
        d.press("back")
        time.sleep(1)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_download_voice_package_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_download_voice_package_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_download_status_display(self):
    '''下载语音下载状态显示'''
    try:
        self.click_message_page()
        logging.info("点击个人设置")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(text="导航设置").click()
        logging.info("点击导航语音")
        d(text="导航语音").click()
        logging.info("下载语音包")
        d(text="萌萌哒").click()
        logging.info("下载进度条")
        d(resourceId="com.baidu.naviauto:id/voice_pb").exists(timeout=3)
        logging.info("删除语音包")
        d(text="萌萌哒").long_click()
        d(text="确定").click()
        time.sleep(2)
        d.press("back")
        time.sleep(1)
        d.press("back")
        time.sleep(1)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_download_status_display_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_download_status_display_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_preference_message_notification(self):
    '''导航中设置为不同的偏好,出现消息通知'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("北京野生动物园")
        d(text="搜索").click()
        d(text="1. 北京野生动物园").exists(timeout=3)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[2]').click()
        time.sleep(2)
        d.click(220, 900)
        d(text="开始导航").exists(timeout=3)
        d(text="开始导航").click()
        if d(text="沿途搜加油站").exists(timeout=3):
            d(resourceId="com.baidu.naviauto:id/img_close").click()
        preference = ['智能推荐', '时间优先', '少收费', '躲避拥堵', '不走高速', '高速优先']
        for i in preference:
            logging.info("点击更多设置")
            d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
            logging.info("设置偏好")
            d(text="偏好").click()
            d(text=i).click()
            d(text="更改路线偏好,计算路线中").wait_gone(timeout=5)
            logging.info("3S后toast消失")
            if d(resourceId="com.baidu.naviauto:id/bnav_rg_common_notification_layout").wait_gone(timeout=3):
                return False
        logging.info("退出导航")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_quit_ly").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_preference_message_notification_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_preference_message_notification_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_searchAlongTheWay_gasStation(self):
    '''沿途搜加油站'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(text="输入目的地").send_keys("北京野生动物园")
        d(text="搜索").click()
        d(text="1. 北京野生动物园").exists(timeout=3)
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/lv_search_result"]/android.widget.RelativeLayout[1]/'
                'android.widget.RelativeLayout[1]/android.widget.LinearLayout[2]').click()
        time.sleep(2)
        d.click(220, 900)
        d(text="开始导航").exists(timeout=3)
        d(text="开始导航").click()
        if d(text="沿途搜加油站").exists(timeout=3):
            d(resourceId="com.baidu.naviauto:id/img_close").click()
        logging.info("点击更多设置")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
        time.sleep(1)
        d(text="沿途搜").click()
        d(text="加油站").click()
        logging.info("点击中国石油")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/route_search_filter_brands_recycler_view"]/'
                'android.widget.LinearLayout[1]/android.widget.FrameLayout[1]').click()
        d(text="沿途搜索中...").wait_gone(timeout=3)
        # d(text="清空结果并继续导航").exists(timeout=5)
        logging.info("点击中国石化")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/route_search_filter_brands_recycler_view"]/'
                'android.widget.LinearLayout[2]').click()
        d(text="沿途搜索中...").wait_gone(timeout=3)
        d(text="清空结果并继续导航").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_searchAlongTheWay_gasStation_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_searchAlongTheWay_gasStation_{time_now}.txt')
        print(e)
        return False
    return True

def test_searchAlongTheWay_atm(self):
    '''沿途搜银行ATM'''
    try:
        logging.info("点击更多设置")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
        time.sleep(1)
        d(text="沿途搜").click()
        d(text="银行ATM").click()
        logging.info("点击工商银行")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/route_search_filter_brands_recycler_view"]/'
                'android.widget.LinearLayout[1]/android.widget.FrameLayout[1]').click()
        d(text="沿途搜索中...").wait_gone(timeout=3)
        # d(text="清空结果并继续导航").exists(timeout=5)
        logging.info("点击建设银行")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/route_search_filter_brands_recycler_view"]/'
                'android.widget.LinearLayout[2]').click()
        d(text="沿途搜索中...").wait_gone(timeout=3)
        logging.info("点击农业银行")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/route_search_filter_brands_recycler_view"]/'
                'android.widget.LinearLayout[3]').click()
        d(text="沿途搜索中...").wait_gone(timeout=3)
        logging.info("点击中国银行")
        d(resourceId="com.baidu.naviauto:id/route_search_end_arrow").click()
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/route_search_filter_brands_recycler_view"]/'
                'android.widget.LinearLayout[3]').click()
        d(text="沿途搜索中...").wait_gone(timeout=3)
        d(resourceId="com.baidu.naviauto:id/route_search_start_arrow").click()
        d(text="清空结果并继续导航").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_searchAlongTheWay_atm_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_searchAlongTheWay_atm_{time_now}.txt')
        print(e)
        return False
    return True

def test_searchAlongTheWay_chargingStation(self):
    '''沿途搜充电站'''
    try:
        logging.info("点击更多设置")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
        time.sleep(1)
        d(text="沿途搜").click()
        d(text="充电站").click()
        logging.info("点击国家电网")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/route_search_filter_brands_recycler_view"]/'
                'android.widget.LinearLayout[1]/android.widget.FrameLayout[1]').click()
        d(text="沿途搜索中...").wait_gone(timeout=3)
        # d(text="清空结果并继续导航").exists(timeout=5)
        logging.info("点击特来电")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/route_search_filter_brands_recycler_view"]/'
                'android.widget.LinearLayout[2]/android.widget.FrameLayout[1]').click()
        d(text="沿途搜索中...").wait_gone(timeout=3)
        d(text="清空结果并继续导航").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_searchAlongTheWay_chargingStation_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_searchAlongTheWay_chargingStation_{time_now}.txt')
        print(e)
        return False
    return True

def test_searchAlongTheWay_frontBackSwitch(self):
    '''搜索完成全览路线时,前后台切换,底图不变化'''
    try:
        logging.info("点击更多设置")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
        time.sleep(1)
        d(text="沿途搜").click()
        d(text="厕所").click()
        d(text="沿途搜索中...").wait_gone(timeout=3)
        logging.info("点击home键")
        d.press("Home")
        time.sleep(2)
        logging.info("点击地图")
        d.app_start("com.baidu.naviauto")
        d(text="清空结果并继续导航").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_searchAlongTheWay_frontBackSwitch_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_searchAlongTheWay_frontBackSwitch_{time_now}.txt')
        print(e)
        return False
    return True

def test_auto_day_nightMode(self):
    '''自动模式/白天模式/黑夜模式'''
    try:
        logging.info("点击更多设置")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
        time.sleep(1)
        d(text="更多").click()
        logging.info("切换夜间模式")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/navi_night_mode_rb"]').click()
        d(resourceId="com.baidu.naviauto:id/navi_common_dialog_title_bar_close").click()
        logging.info("点击更多设置")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
        time.sleep(1)
        d(text="更多").click()
        logging.info("切换日间模式")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/navi_day_mode_rb"]').click()
        d(resourceId="com.baidu.naviauto:id/navi_common_dialog_title_bar_close").click()
        logging.info("点击更多设置")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_open_close_ly").click()
        time.sleep(1)
        d(text="更多").click()
        logging.info("切换自动模式")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/navi_night_mode_auto_rb"]').click()
        d(resourceId="com.baidu.naviauto:id/navi_common_dialog_title_bar_close").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_auto_day_nightMode_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_auto_day_nightMode_{time_now}.txt')
        print(e)
        return False
    return True

def test_voic_avoidCongestion(self):
    '''导航中设置路线偏好为躲避拥堵'''
    try:
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 躲避拥堵')
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_voic_avoidCongestion_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_voic_avoidCongestion_{time_now}.txt')
        print(e)
        return False
    return True

def test_voic_noHighSpeedRoute(self):
    '''导航中设置路线偏好为不走高速路线'''
    try:
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 不走高速路线')
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_voic_noHighSpeedRoute_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_voic_noHighSpeedRoute_{time_now}.txt')
        print(e)
        return False
    return True

def test_voic_chargeLess(self):
    '''导航中设置路线偏好为少收费'''
    try:
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 少收费')
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_voic_chargeLess_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_voic_chargeLess_{time_now}.txt')
        print(e)
        return False
    return True

def test_voic_highSpeedPriority(self):
    '''导航中设置路线偏好为高速优先路线'''
    try:
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 高速优先路线')
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_voic_highSpeedPriority_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_voic_highSpeedPriority_{time_now}.txt')
        print(e)
        return False
    return True

def test_openRoad(self):
    '''打开路况'''
    try:
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 打开路况')
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_openRoad_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_openRoad_{time_now}.txt')
        print(e)
        return False
    return True

def test_closeRoad(self):
    '''关闭路况'''
    try:
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 关闭路况')
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_closeRoad_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_closeRoad_{time_now}.txt')
        print(e)
        return False
    return True

def test_switchFollowMode(self):
    '''切换跟随模式'''
    try:
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 车头朝上')
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_switchFollowMode_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_switchFollowMode_{time_now}.txt')
        print(e)
        return False
    return True

def test_switchDueNorthMode(self):
    '''切换正北模式'''
    try:
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 正北朝上')
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_switchDueNorthMode_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_switchDueNorthMode_{time_now}.txt')
        print(e)
        return False
    return True

def test_switch2DMode(self):
    '''切换2D模式'''
    try:
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 2D视图')
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_switch2DMode_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_switch2DMode_{time_now}.txt')
        print(e)
        return False
    return True

def test_switch3DMode(self):
    '''切换3D模式'''
    try:
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 3D视图')
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_switch3DMode_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_switch3DMode_{time_now}.txt')
        print(e)
        return False
    return True

def test_switchDayMode(self):
    '''切换白天模式'''
    try:
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 白天模式')
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_switchDayMode_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_switchDayMode_{time_now}.txt')
        print(e)
        return False
    return True

def test_switchNightMode(self):
    '''切换黑夜模式'''
    try:
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 黑夜模式')
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_switchNightMode_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_switchNightMode_{time_now}.txt')
        print(e)
        return False
    return True

def test_zoomInMap(self):
    '''放大地图'''
    try:
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 放大地图')
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_zoomInMap_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_zoomInMap_{time_now}.txt')
        print(e)
        return False
    return True

def test_zoomOutMap(self):
    '''缩小地图'''
    try:
        logging.info("语音唤醒")
        os.popen('adb shell am broadcast -a duerosrun -n '
                 'com.baidu.che.codriver/com.baidu.che.codriver.debug.QueryReceiver --es enQuery 缩小地图')
        time.sleep(2)
        logging.info("退出导航")
        d(resourceId="com.baidu.naviauto:id/bnav_rg_toolbox_quit_ly").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_zoomOutMap_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_zoomOutMap_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True


def test_HomeUIDisplay(self):
    '''首页UI展示'''
    try:
        self.click_message_page()
        logging.info("搜索栏中显示返回按钮和文案『输入目的地』")
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").exists(timeout=2)
        d(text="输入目的地").exists(timeout=2)
        logging.info("搜索栏右侧显示登录账号图标")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").exists(timeout=2)
        logging.info("右侧竖排依次展示路况图标、定位图标、放大+缩小图标,缩小图标左侧显示比例尺")
        d(resourceId="com.baidu.naviauto:id/its_btn").exists(timeout=2)
        d(resourceId="com.baidu.naviauto:id/location_btn").exists(timeout=2)
        d(resourceId="com.baidu.naviauto:id/zoomin_btn").exists(timeout=2)
        d(resourceId="com.baidu.naviauto:id/zoomout_btn").exists(timeout=2)
        d(resourceId="com.baidu.naviauto:id/scale_indicator").exists(timeout=2)
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_HomeUIDisplay_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_HomeUIDisplay_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_morePanels_UIDisplay(self):
    '''首页展开更多面板,UI展示'''
    try:
        self.click_message_page()
        logging.info("点击个人账号")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        logging.info("搜索框右侧的图标变为收起图标")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").exists(timeout=2)
        logging.info("面板上依次展示 收藏夹、离线地图数据、组队出行、微信互联、导航设置、关于我们,可上下滑动")
        iteamlist = ["收藏夹", "离线地图数据", "组队出行", "微信互联", "导航设置", "关于我们"]
        for iteam in iteamlist:
            if d(text=iteam).exists(timeout=2):
                pass
            else:
                return False
            d(scrollable=True).scroll(steps=10)
        logging.info("返回导航主界面")
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_morePanels_UIDisplay_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_morePanels_UIDisplay_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_packUp_morePanels(self):
    '''收起更多面板'''
    try:
        self.click_message_page()
        logging.info("点击个人账号")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(text="离线地图数据").exists(timeout=2)
        logging.info("收起更多面板")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        if not d(text="离线地图数据").exists(timeout=2):
            pass
        else:
            return False
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_packUp_morePanels_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_packUp_morePanels_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_morePanels_clickSearch(self):
    '''展开更多面板时点击搜索框'''
    try:
        self.click_message_page()
        logging.info("点击个人账号")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(text="离线地图数据").exists(timeout=2)
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        logging.info("添加途径点icon")
        if d(resourceId="com.baidu.naviauto:id/ib_lion_search_add").exists(timeout=2):
            pass
        else:
            return False
        logging.info("返回导航界面")
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(1)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_morePanels_clickSearch_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_morePanels_clickSearch_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_favorites_page(self):
    '''点击收藏夹入口进入收藏夹页面'''
    try:
        self.click_message_page()
        logging.info("点击个人账号")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        d(scrollable=True).scroll.vert.backward()
        d(text="收藏夹").click()
        logging.info("进入收藏夹页面(展示家和公司)")
        if d(text="家").exists(timeout=2):
            pass
        else:
            return False
        if d(text="公司").exists(timeout=2):
            pass
        else:
            return False
        logging.info("返回导航界面")
        d(resourceId="com.baidu.naviauto:id/iv_left").click()
        time.sleep(1)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_favorites_page_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_favorites_page_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_search_record_display(self):
    '''历史搜索记录展示'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(scrollable=True).scroll.toEnd()
        logging.info("尾部展示『清空历史记录』按钮")
        if d.xpath('//*[@resource-id="com.baidu.naviauto:id/listview_lion_search"]/'
                   'android.widget.FrameLayout[4]').wait(timeout=2):
            pass
        else:
            return False
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_search_record_display_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_search_record_display_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_click_clearHistory(self):
    '''点击『清空历史记录』按钮,弹出确认dialog'''
    try:
        self.click_message_page()
        logging.info("点击搜索框")
        d(text="输入目的地").click()
        d(scrollable=True).scroll.toEnd()
        logging.info("点击『清空历史记录』按钮")
        d.xpath('//*[@resource-id="com.baidu.naviauto:id/listview_lion_search"]/'
                   'android.widget.FrameLayout[4]').click()
        time.sleep(1)
        logging.info("点击确定")
        d(text="确定").click()
        time.sleep(1)
        if d.xpath('//*[@resource-id="com.baidu.naviauto:id/listview_lion_search"]/'
                   'android.widget.FrameLayout[4]').wait(timeout=2):
            return False
        else:
            pass
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_click_clearHistory_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_click_clearHistory_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_clear_cache_page_display(self):
    '''查看清除缓存页面显示'''
    try:
        self.click_message_page()
        logging.info("点击个人账号")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        logging.info("点击导航设置")
        d(text="导航设置").click()
        d(scrollable=True).scroll.toEnd()
        logging.info("查看缓存")
        if not d(text="0KB").exists(timeout=2):
            pass
        else:
            return False
        d(resourceId="com.baidu.naviauto:id/btnBack").click()
        time.sleep(1)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_clear_cache_page_display_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_clear_cache_page_display_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_clear_cache(self):
    '''清除缓存点击确认和取消按钮'''
    try:
        self.click_message_page()
        logging.info("点击个人账号")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        logging.info("点击导航设置")
        d(text="导航设置").click()
        d(scrollable=True).scroll.toEnd()
        logging.info("点击清除缓存")
        d(text="清除缓存").click()
        logging.info("点击取消")
        d(text="取消").click()
        time.sleep(1)
        logging.info("点击清除缓存")
        d(text="清除缓存").click()
        logging.info('点击确定')
        d(text="确定").click()
        if d(text="0KB").exists(timeout=2):
            pass
        else:
            return False
        d(resourceId="com.baidu.naviauto:id/btnBack").click()
        time.sleep(1)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_clear_cache_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_clear_cache_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_clear_cache_field_display(self):
    '''有缓存的情况下点击当前缓存字段热区'''
    try:
        self.click_message_page()
        logging.info("点击个人账号")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        logging.info("点击导航设置")
        d(text="导航设置").click()
        d(scrollable=True).scroll.toEnd()
        logging.info("点击清除缓存")
        d(text="清除缓存").click()
        logging.info("当前缓存字段热区显示")
        d(text="确认要清除缓存吗?").exists(timeout=2)
        d(text="取消").exists(timeout=2)
        d(text="确定").exists(timeout=2)
        logging.info('点击确定')
        d(text="确定").click()
        d(resourceId="com.baidu.naviauto:id/btnBack").click()
        time.sleep(1)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_clear_cache_field_display_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_clear_cache_field_display_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_cacheDataIs0_click_clear_cache(self):
    '''当前缓存数据为0点击清除缓存按钮'''
    try:
        self.click_message_page()
        logging.info("点击个人账号")
        d(resourceId="com.baidu.naviauto:id/ll_menu_check_box").click()
        logging.info("点击导航设置")
        d(text="导航设置").click()
        d(scrollable=True).scroll.toEnd()
        logging.info("点击清除缓存")
        for i in range(2):
            d(text="清除缓存").click()
            logging.info('点击确定')
            d(text="确定").click()
            if d(text="0KB").exists(timeout=2):
                pass
            else:
                return False
        d(resourceId="com.baidu.naviauto:id/btnBack").click()
        time.sleep(1)
        d(resourceId="com.baidu.naviauto:id/relative_lion_search_back").click()
        time.sleep(5)
    except Exception as e:
        d.screenshot(f'test_cacheDataIs0_click_clear_cache_{time_now}.png')
        os.popen(f'adb logcat -v -t threadtime 10000> test_cacheDataIs0_click_clear_cache_{time_now}.txt')
        print(e)
        return False
    finally:
        d.app_stop("com.baidu.naviauto")
    return True

def test_01(self):
    """启动地图
    通过包名判断首页元素是否启动成功
    """
    print("1111")
    basemap.enter_map()
    Judge.passIf(self, UIChecker.checkByText("输入目的地"), "进入地图")

def test_02(self):
    print("2222")
    """勾选不在提醒选项
    通过再次进入地图判断是否有弹窗
    """
    basemap.enter_map()
    # Action.adb_cmd("adb shell input keyevent 4")
    # Action.clickByText(u"退出导航")
    Action.adb_cmd("adb shell am start -n com.baidu.naviauto/.NaviAutoActivity")
    sleep(2)
    Judge.passUnless(self,
                     UIChecker.checkByText("免责声明"), "进入免责声明"
                     )

def test_03(self):
    """进入事故上报界面
    """
    print("3333")
    basemap.enter_map()
    basemap.enter_ugc()
    Action.clickByText("事故")
    Judge.passIf(self, UIChecker.checkByTextWait("严重事故"), "进入事故上报界面")
    Action.clickByResourceId(BaiduMap.UGC_Close_id)

def test_04(self):
    """进入拥堵上报界面
    """
    print("44444")
    basemap.enter_map()
    basemap.enter_ugc()
    sleep(2)
    Action.clickByText("拥堵")
    Judge.passIf(self, UIChecker.checkByTextWait("轻微拥堵"), "进入拥堵上报界面")
    Action.clickByResourceId(BaiduMap.UGC_Close_id)

def test_05(self):
    print("5555")
    """进入危险上报界面
    """
    basemap.enter_map()
    basemap.enter_ugc()
    Action.clickByText("危险")
    Judge.passIf(self, UIChecker.checkByTextWait("积水"), "进入危险上报界面")
    Action.clickByResourceId(BaiduMap.UGC_Close_id)

def test_06(self):
    """进入修路上报界面
    """
    print("6666")
    basemap.enter_map()
    basemap.enter_ugc()
    Action.clickByText("修路")
    Judge.passIf(self, UIChecker.checkByTextWait("可以通行"), "进入修路上报界面")
    Action.clickByResourceId(BaiduMap.UGC_Close_id)

def test_07(self):
    """进入封路上报界面
    """
    basemap.enter_map()
    basemap.enter_ugc()
    Action.clickByText("封路")
    Judge.passIf(self, UIChecker.checkByTextWait("临时封路"), "进入封路上报界面")
    Action.clickByResourceId(BaiduMap.UGC_Close_id)

def test_08(self):
    """进入道路报错上报界面
    """
    basemap.enter_map()
    basemap.enter_ugc()
    Action.clickByText("道路报错")
    Judge.passIf(self, UIChecker.checkByTextWait("道路不存在"), "进入道路报错上报界面")
    Action.clickByResourceId(BaiduMap.UGC_Close_id)

def test_09(self):
    """进入更多设置界面
    """
    basemap.enter_map()
    basemap.enter_settings()
    self.assertTrue(Judge.passIf(self, UIChecker.checkByTextWait("收藏夹"), "进入更多设置界面"))

def test_10(self):
    """进入收藏夹
    """
    basemap.enter_map()
    basemap.enter_settings()
    Action.clickByText("收藏夹")
    sleep(5)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.Setting_refresh_id), "进入收藏夹")

def test_11(self):
    """点击收藏夹编辑按钮
    """
    basemap.enter_map()
    basemap.enter_settings()
    Action.clickByText("收藏夹")
    sleep(8)
    Action.clickByResourceId(BaiduMap.Collection_edit_id)
    Action.clickByResourceId(BaiduMap.Succees_edit_id)
    # Judge.passIf(self, UIChecker.checkByTextWait("完成"), "点击收藏夹编辑按钮")

    # Action.clickByText("完成")

def test_12(self):
    """进入离线地图数据界面
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_0fflinedata()
    sleep(3)
    Judge.passIf(self, UIChecker.checkByTextWait("零流量更新"), "进入离线地图界面")

def test_13(self):
    """进入零流量更新界面
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_0fflinedata()
    Action.clickByText("零流量更新")
    Judge.passIf(self, UIChecker.checkByTextWait("U盘更新"), "进入零流量更新界面")
    '''

‘’’

def test_14(self):
    """进入U盘更新界面
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_0fflinedata()
    Action.clickByText("零流量更新")
    Action.clickByText("U盘更新")
    Judge.passIf(self, UIChecker.checkByTextWait("未发现U盘"), "进入零流量更新界面")

# def test_15(self):
#     """进入手机更新界面
#     """
#     basemap.enter_map()
#     basemap.enter_settings()
#     basemap.enter_0fflinedata()
#     Action.clickByText("零流量更新")
#     Action.clickByText("手机更新")
#     Judge.passIf(self, UIChecker.checkByTextContains("打开手机热点"), "进入手机更新界面")

@unittest.skip("test")
def test_16(self):
    """进入Wi-Fi界面再返回
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_0fflinedata()
    Action.clickByText("零流量更新")
    Action.clickByText("手机更新")
    Action.clickByText("网络设置 >")
    Judge.passIf(self, UIChecker.checkByTextWait("Wi-Fi"), "进入Wi-Fi界面")
    Action.adb_cmd("adb shell input keyevent 4")
    sleep(2)

def test_17(self):
    """进入离线地图界面
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_0fflinedata()
    Action.clickByText("离线地图")
    sleep(3)
    Judge.passIf(self, UIChecker.checkByTextWait("热门城市"), "进入离线地图界面")

def test_18(self):
    """进入热门城市并返回
    """
    basemap.enter_map()
    basemap.enter_settings()
    sleep(2)
    basemap.enter_0fflinedata()
    Action.clickByText("离线地图")
    Action.clickByText("热门城市")
    Judge.passIf(self, UIChecker.checkByTextWait("北京市"), "进入热门城市")
    Action.adb_cmd("adb shell input keyevent 4")
    Judge.passIf(self, UIChecker.checkByTextWait("离线地图"), "返回离线地图界面")

def test_19(self):
    """进入城市搜索,并搜索
    """
    basemap.enter_map()
    sleep(2)
    basemap.enter_settings()
    sleep(2)
    basemap.enter_0fflinedata()
    Action.clickByText("离线地图")
    Action.clickByResourceId(BaiduMap.Offline_search_id)
    input = "请输入城市名或首字母"
    Judge.passIf(self, UIChecker.checkByTextWait(input), "进入城市搜索界面")
    Action.clickByText(input)
    Action.setTextByResourceId(BaiduMap.Offline_input_id, "haer")
    Judge.passIf(self, UIChecker.checkByText("哈尔滨市"), "搜索哈尔滨")

def test_20(self):
    """进入下载管理界面
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_0fflinedata()
    Action.clickByText("离线地图")
    Action.clickByResourceId(BaiduMap.Offline_setting_id)
    Judge.passIf(self, UIChecker.checkByText("全部更新"), "进入下载管理界面")

def test_21(self):
    """滑动查找浙江省并点击
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_0fflinedata()
    Action.clickByText("离线地图")
    sleep(2)
    Action.clickByScrollText("浙江省")
    Judge.passIf(self, UIChecker.checkByText("杭州市"), "滑动查找浙江省并点击")
    Action.clickByResourceId(BaiduMap.Offline_download_id)

def test_22(self):
    """点击回家按钮,进行导航
    """
    basemap.enter_map()
    input = "输入目的地"
    Action.clickByText(input)
    Action.clickByText("回家")

    # 没有设置公司地址,输入关键词,选择第一个结果设为家地址
    # if UIChecker.checkByTextWait(input):
    #     sleep(1)
    #     Action.setTextByResourceId(BaiduMap.Input_via_id, "世界之窗")
    #     sleep(5)
    #     Action.clickByResourceId(BaiduMap.Search_jc_id)
    #     sleep(3)
    #     Judge.passIf(self, UIChecker.checkByTextWait("回家"), "设置家地址")
    #     Action.clickByText("回家")
    sleep(6)
    # Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.Start_navigation), "跳转到路线规划界面")
    # Action.clickByResourceId(BaiduMap.Start_navigation)
    # Judge.passIf(self, UIChecker.checkByText('同意'), "百度地图导航使用提示页面")
    Action.clickByText('同意')
    sleep(3)
    # basemap.click_agree_buttom()
    basemap.close_navi()

def test_23(self):
    """点击更多-停车场,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("停车场")
    sleep(2)
    # 点击退出导航按钮
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_24(self):
    """点击更多-加油站,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("加油站")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_25(self):
    """点击更多-4S店,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("4S店")

    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_26(self):
    """点击更多-洗车,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("洗车")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_27(self):
    """点击更多-卫生间,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("卫生间")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_28(self):
    """点击更多-中餐,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("中餐")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_29(self):
    """点击更多-西餐,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("西餐")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_30(self):
    """点击更多-小吃,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("小吃")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_31(self):
    """点击更多-机场,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("机场")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_32(self):
    """点击更多-火车站,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("火车站")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_33(self):
    """点击更多-服务区,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("服务区")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_34(self):
    """点击更多-风景区,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("风景区")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_35(self):
    """点击更多-度假村,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("度假村")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_36(self):
    """点击更多-公园,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("公园")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_37(self):
    """点击更多-星级酒店,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("星级酒店")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_38(self):
    """点击更多-快捷酒店,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("快捷酒店")
    sleep(2)
    if UIChecker.checkByTextWait("发送"):
        Action.clickByText("发送")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

@unittest.skip("test")
def test_39(self):
    """点击更多-旅馆,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("旅馆")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_40(self):
    """点击更多-银行,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("银行")
    sleep(2)
    if UIChecker.checkByTextWait("发送"):
        Action.clickByText("发送")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_41(self):
    """点击更多-医院,进行导航
    """
    basemap.enter_map()
    basemap.enter_morepage("医院")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_42(self):
    """开启路况
    """
    basemap.enter_navi()
    Action.swipeLeftAtCenter()
    # 判断路况控件是否可点击
    sleep(2)
    Judge.passIf(self, UIChecker.checkByTextWait("继续当前导航"), "进入操作态")
    # 点击开启路况
    Action.clickByResourceId(BaiduMap.Traffic_panel_id)
    # 数据网络下会弹框提示
    if UIChecker.checkByTextWait("提示"):
        Action.clickByText("我知道了")
    config.logger.info("实时路况已打开")

def test_43(self):
    """关闭导航声音
    """
    basemap.enter_navi()
    Action.swipeLeftAtCenter()
    # 判断是否进入操作态
    Action.waiting(2)
    Judge.passIf(self, UIChecker.checkByTextWait("继续当前导航"), "进入操作态")
    # 点击关闭导航声音
    Action.clickByResourceId(BaiduMap.Traffic_voice_id)
    Judge.passIf(self, UIChecker.checkByTextWait("已关闭“导航声音”"), "关闭导航声音")

def test_44(self):
    """开启导航声音
    在导航时拖动地图
    """
    basemap.enter_navi()
    Action.swipeLeftAtCenter()
    # 判断是否进入操作态
    Action.waiting(1)
    Judge.passIf(self, UIChecker.checkByTextWait("继续当前导航"), "进入操作态")
    # 点击关闭导航声音
    Action.clickByResourceId(BaiduMap.Traffic_voice_id)
    Judge.passIf(self, UIChecker.checkByTextWait("已关闭“导航声音”"), "关闭导航声音")
    Action.swipeLeftAtCenter()
    Action.waiting(1)
    # 点击开启导航声音
    Action.clickByResourceId(BaiduMap.Traffic_voice_id)
    Judge.passIf(self, UIChecker.checkByTextWait("已开启“导航声音”"), "开启导航声音")

def test_45(self):
    """点击刷新路线按钮
    """
    basemap.enter_navi()
    Action.swipeLeftAtCenter()
    sleep(2)
    Judge.passIf(self, UIChecker.checkByTextWait("继续当前导航"), "进入操作态")
    Action.clickByResourceId(BaiduMap.Traffic_refresh_id)
    sleep(3)
    Judge.passIf(self, UIChecker.checkByTextContains("优路线"), "点击刷新路线")
    if UIChecker.checkByText("当前已是最优路线"):
        Action.clickByText("继续当前导航")

def test_46(self):
    """查看导航设置
    进入导航设置,收起导航设置
    """
    basemap.enter_navi()
    Action.clickByResourceId(BaiduMap.More_btn_id)
    Judge.passIf(self, UIChecker.checkByTextWait("更多"), "进入导航设置界面")
    Action.clickByResourceId(BaiduMap.More_btn_id)
    config.logger.info("收起导航设置界面,pass")

def test_47(self):
    """切换为路况条
    进入导航设置,切换成路况条
    """
    basemap.enter_navi()
    # 进入导航设置
    Action.clickByResourceId(BaiduMap.More_btn_id)
    Action.clickByText("全览小窗")
    if UIChecker.checkByText("GPS信号弱,请谨慎驾驶"):
        Action.waiting(3)
    else:
        Judge.passIf(self, UIChecker.checkByTextWait("已切换为“路况条”"), "切换导航小窗为路况条")

def test_48(self):
    """切换全览小窗
    进入导航设置,切换成路况条,再切换成全览小窗
    """
    basemap.enter_navi()
    Action.clickByResourceId(BaiduMap.More_btn_id)
    Action.clickByText("全览小窗")
    if UIChecker.checkByText("GPS信号弱,请谨慎驾驶"):
        Action.waiting(3)
    Action.clickByResourceId(BaiduMap.More_btn_id)
    Action.clickByText("路况条")
    Judge.passIf(self, UIChecker.checkByTextWait("已切换为“全览小窗”"), "切换路况条为全览小窗")

def test_49(self):
    """切换为2D模式
    进入导航设置,切换成2D模式
    """
    basemap.enter_navi()
    sleep(2)
    Action.clickByResourceId(BaiduMap.More_btn_id)
    # 点击车头朝上
    Action.clickByText("车头朝上")
    if UIChecker.checkByText("GPS信号弱,请谨慎驾驶"):
        Action.waiting(3)
    else:
        Judge.passIf(self, UIChecker.checkByTextWait("已切换导航视角为“正北朝上”"), "切换导航视角为正北朝上")

def test_50(self):
    """切换为3D模式
    """
    basemap.enter_navi()
    Action.clickByResourceId(BaiduMap.More_btn_id)
    # 点击车头朝上
    Action.clickByText("车头朝上")
    if UIChecker.checkByText("GPS信号弱,请谨慎驾驶"):
        Action.waiting(3)
    Action.clickByResourceId(BaiduMap.More_btn_id)
    Action.clickByText("正北朝上")
    sleep(2)
    # Judge.passIf(self, UIChecker.checkByTextWait("已切换导航视角为“车头朝上”"), "切换导航视角为车头朝上")

def test_51(self):
    """点击限行按钮
    """
    basemap.enter_navi()
    Action.clickByResourceId(BaiduMap.More_btn_id)
    Action.clickByText("限行")
    Action.waiting(2)
    Judge.passIf(self, UIChecker.checkByTextContains("车牌限行"), "点击限行按钮")
    # 点击界面关闭按钮
    if UIChecker.checkByResourceId(BaiduMap.Quit_common_id):
        Action.clickByResourceId(BaiduMap.Quit_common_id)

def test_52(self):
    """进入沿途搜界面
    """
    basemap.enter_navi()
    Action.clickByResourceId(BaiduMap.More_btn_id)
    Action.clickByText("沿途搜")
    Action.waiting(1)
    Judge.passIf(self, UIChecker.checkByTextWait("厕所"), "进入沿途搜索界面")
    # 点击界面关闭按钮
    if UIChecker.checkByResourceId(BaiduMap.Quit_common_id):
        Action.clickByResourceId(BaiduMap.Quit_common_id)

def test_53(self):
    """沿途搜索加油站
    """
    basemap.enter_navi()
    basemap.enter_navi_search("加油站")
    Judge.passUnless(self, UIChecker.checkByResourceId(BaiduMap.Traffic_voice_id), "回到继续导航状态")

def test_54(self):
    """沿途搜充电站
    """
    basemap.enter_navi()
    basemap.enter_navi_search("充电站")
    Judge.passUnless(self, UIChecker.checkByResourceId(BaiduMap.Traffic_voice_id), "回到继续导航状态")

def test_55(self):
    """沿途搜厕所
    """
    basemap.enter_navi()
    basemap.enter_navi_search("厕所")
    Judge.passUnless(self, UIChecker.checkByResourceId(BaiduMap.Traffic_voice_id), "回到继续导航状态")

def test_56(self):
    """沿途搜银行ATM
    """
    basemap.enter_navi()
    basemap.enter_navi_search("银行")
    Judge.passUnless(self, UIChecker.checkByResourceId(BaiduMap.Traffic_voice_id), "回到继续导航状态")

def test_57(self):
    """沿途搜酒店住宿
    """
    basemap.enter_navi()
    basemap.enter_navi_search("酒店")
    Judge.passUnless(self, UIChecker.checkByResourceId(BaiduMap.Traffic_voice_id), "回到继续导航状态")

def test_58(self):
    """沿途搜旅游景点
    """
    basemap.enter_navi()
    basemap.enter_navi_search("景点")
    Judge.passUnless(self, UIChecker.checkByResourceId(BaiduMap.Traffic_voice_id), "回到继续导航状态")

def test_59(self):
    """进入路线偏好界面
    """
    basemap.enter_navi()
    Action.clickByResourceId(BaiduMap.More_btn_id)
    Action.clickByText("偏好")
    Judge.passIf(self, UIChecker.checkByTextWait("路线偏好"), "进入路线偏好界面")
    if UIChecker.checkByResourceId(BaiduMap.Quit_common_id):
        Action.clickByResourceId(BaiduMap.Quit_common_id)

def test_60(self):
    """使用时间优先
    路线偏好设置为时间优先
    """
    basemap.enter_navi()
    basemap.navi_choice_routeplan("时间优先")
    Judge.passIf(self, UIChecker.checkByTextWait("已使用时间优先方案"), "切换路线偏好为时间优先")

def test_61(self):
    """使用少收费
    路线偏好设置为少收费
    """
    basemap.enter_navi()
    sleep(3)
    basemap.navi_choice_routeplan("少收费")
    Judge.passIf(self, UIChecker.checkByTextWait("已使用少收费方案"), "切换路线偏好为少收费")

def test_62(self):
    """使用躲避拥堵
    路线偏好设置为躲避拥堵
    """
    basemap.enter_navi()
    basemap.navi_choice_routeplan("躲避拥堵")
    Judge.passIf(self, UIChecker.checkByTextWait("已使用躲避拥堵方案"), "切换路线偏好为躲避拥堵")

def test_63(self):
    """使用不走高速
    路线偏好设置为不走高速
    """
    basemap.enter_navi()
    basemap.navi_choice_routeplan("不走高速")
    Judge.passIf(self, UIChecker.checkByTextWait("已使用不走高速方案"), "切换路线偏好为不走高速")

def test_64(self):
    """使用高速优先
    路线偏好设置为高速优先
    """
    basemap.enter_navi()
    basemap.navi_choice_routeplan("高速优先")
    Judge.passIf(self, UIChecker.checkByTextWait("已使用高速优先方案"), "切换路线偏好为高速优先")

def test_65(self):
    """使用智能推荐
    路线偏好设置为智能推荐
    """
    basemap.enter_navi()
    basemap.navi_choice_routeplan("高速优先")
    sleep(2)
    Action.clickByResourceId(BaiduMap.More_btn_id)
    Action.clickByText("偏好")
    Action.clickByText("智能推荐")
    sleep(2)
    Judge.passIf(self, UIChecker.checkByTextWait("已使用智能推荐方案"), "切换路线偏好为智能推荐")

def test_66(self):
    """点击行程分享
    """
    basemap.enter_navi()
    Action.clickByResourceId(BaiduMap.More_btn_id)
    Action.clickByText("行程分享")
    Action.waiting(2)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.Quit_common_id), "进入行程分享界面")

def test_67(self):
    """查看更多设置界面
    进入更多设置界面
    """
    basemap.enter_navi()
    Action.clickByResourceId(BaiduMap.More_btn_id)
    Action.clickByText("更多")
    Judge.passIf(self, UIChecker.checkByTextWait("更多设置"), "进入更多设置界面")

def test_68(self):
    """查看导航中事件上报界面
    进入事件上报界面
    """
    basemap.enter_navi()
    Action.swipeLeftAtCenter()
    # 判断是否进入操作态
    Judge.passIf(self, UIChecker.checkByTextWait("继续当前导航"), "进入操作态,fail")
    # 点击进入事件上报界面
    Action.clickByResourceId(BaiduMap.Traffic_report_id)
    Judge.passIf(self, UIChecker.checkByTextWait("事故"), "进入导航中事件上报界面")
    Action.clickByResourceId(BaiduMap.Traffic_report_id)

def test_69(self):
    """点击事故上报发送
    进入事故上报界面
    """
    basemap.enter_navi()
    basemap.enter_ugc_page("事故")
    Judge.passIf(self, UIChecker.checkByTextWait("追尾"), "进入事故界面")
    Action.clickByResourceId(BaiduMap.UGC_Send_id)
    sleep(2)
    Judge.passIf(self, UIChecker.checkByTextContainsWait("感谢您的反馈!"), "点击事故上报发布")

def test_70(self):
    """点击拥堵上报发送
    进入拥堵上报界面
    """
    basemap.enter_navi()
    sleep(3)
    basemap.enter_ugc_page("拥堵")
    Judge.passIf(self, UIChecker.checkByTextWait("缓慢行驶"), "进入拥堵界面")
    Action.clickByResourceId(BaiduMap.UGC_Send_id)
    sleep(2)
    Judge.passIf(self, UIChecker.checkByTextContainsWait("感谢您的反馈!"), "点击拥堵上报发布")

def test_71(self):
    """点击危险上报发送
    进入危险上报界面
    """
    basemap.enter_navi()
    basemap.enter_ugc_page("危险")
    Judge.passIf(self, UIChecker.checkByTextWait("积水"), "进入危险界面")
    Action.clickByResourceId(BaiduMap.UGC_Send_id)
    sleep(2)
    Judge.passIf(self, UIChecker.checkByTextContainsWait("感谢您的反馈!"), "点击危险上报发布")

def test_72(self):
    """点击修路上报发送
    进入修路上报界面
    """
    basemap.enter_navi()
    basemap.enter_ugc_page("修路")
    Judge.passIf(self, UIChecker.checkByTextWait("可以通行"), "进入修路界面")
    Action.clickByResourceId(BaiduMap.UGC_Send_id)
    sleep(2)
    Judge.passIf(self, UIChecker.checkByTextContainsWait("感谢您的反馈!"), "点击修路上报发布")

def test_73(self):
    """点击封路上报发送
    进入封路上报界面
    """
    basemap.enter_navi()
    basemap.enter_ugc_page("封路")
    Judge.passIf(self, UIChecker.checkByTextWait("临时封路"), "进入封路界面")
    Action.clickByResourceId(BaiduMap.UGC_Send_id)
    sleep(2)
    Judge.passIf(self, UIChecker.checkByTextContainsWait("感谢您的反馈!"), "点击封路上报发布")

def test_74(self):
    """点击道路报错上报发送
    进入道路报错上报界面
    """
    basemap.enter_navi()
    sleep(3)
    basemap.enter_ugc_page("道路报错")
    Judge.passIf(self, UIChecker.checkByTextWait("道路不存在"), "进入修路界面")
    Action.clickByResourceId(BaiduMap.UGC_Send_id)
    sleep(2)
    Judge.passIf(self, UIChecker.checkByTextContainsWait("感谢您的反馈!"), "点击道路报错上报发布")

def test_75(self):
    """进入事故录音界面
    """
    basemap.enter_navi()
    basemap.enter_ugc_page("事故")
    Action.swipeDiretion(BaiduMap.UGC_swipe_id, 'up', 5)
    Action.clickByResourceId(BaiduMap.UGC_record_id)
    Judge.passIf(self, UIChecker.checkByText("详细描述"), "进入事故录音界面")

def test_76(self):
    """点击开始录音,再点击结束录音,发送
    """
    basemap.enter_navi()
    sleep(3)
    basemap.enter_ugc_page("事故")
    sleep(2)
    Action.swipeDiretion(BaiduMap.UGC_swipe_id, 'up', 5)
    Action.clickByResourceId(BaiduMap.UGC_record_id)
    Action.clickByResourceId(BaiduMap.UGC_speech_id)
    # Action.clickByResourceId(BaiduMap.sys_open_btn)
    # Action.clickByText("允许")
    Action.clickByResourceId(BaiduMap.UGC_speech_id)
    sleep(5)
    Judge.passIf(self, UIChecker.checkByResourceId("com.baidu.naviauto:id/ugc_record_page_status"), "点击开始录音")
    # Judge.passIf(self, UIChecker.checkByTextContains("剩余"), "点击开始录音")
    # Action.clickByResourceId(BaiduMap.UGC_speech_id)

    Judge.passIf(self, UIChecker.checkByTextContains("语音描述"), "点击结束录音")
    Action.clickByResourceId(BaiduMap.UGC_Send_id)
    sleep(2)
    Judge.passIf(self, UIChecker.checkByTextContainsWait("感谢您的反馈!"), "录音后发布")

# 备注:此条case需要调试
def test_77(self):
    """进入离线导航界面点击已下载
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_0fflinedata()
    Action.clickByText("离线导航")
    Judge.passIf(self, UIChecker.checkByText("已下载"), "进入离线导航界面")
    if UIChecker.checkByText("已下载"):
        Action.clickByText("已下载")
        """获取不到麦克权限"""

@unittest.skip("error")
def test_78(self):
    """滑动查找澳门
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_0fflinedata()
    Action.clickByText("离线导航")
    sleep(1)
    try:
        Action.clickByScrollText("澳门")
        if UIChecker.checkByText("取消"):
            Action.clickByText("取消")
    except:
        if UIChecker.checkByText("已下载"):
            Action.clickByText("已下载")
    finally:
        Judge.passIf(self, UIChecker.checkByTextContains("澳门"), "滑动查找澳门")

def test_79(self):
    """进入组队出行,如有队伍,解散队伍
    """
    basemap.enter_map()
    sleep(2)
    basemap.enter_settings()
    sleep(3)
    basemap.enter_teamtrip_page()
    Action.clickByText("取消")
    Judge.passIf(self, UIChecker.checkByText("组队出行"), "进入组队出行")

def test_80(self):
    """进入加入队伍界面
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_teamtrip_page()
    Action.clickByText("组队出行")
    if UIChecker.checkByText("服务协议"):
        Action.clickByText("同意并继续")
        sleep(2)
        Action.clickByText("加入队伍")
        sleep(2)
        Action.setTextByResourceId(BaiduMap.Team_join_id, 111)
        for i in range(6):
            Action.clickByResourceId(BaiduMap.Team_keboard_id)
        Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.Team_join_id), "进入加入队伍界面")

def test_81(self):
    """进入组队出行,创建队伍
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_teamtrip_page()
    Action.clickByText("组队出行")
    sleep(2)
    if UIChecker.checkByText("服务协议"):
        Action.clickByText("同意并继续")
        sleep(2)
        Action.clickByText("创建队伍")
    sleep(5)
    Judge.passIf(self, UIChecker.checkByText("我的队伍"), "进入组队出行")

def test_82(self):
    """进入组队出行,操作后点击邀请好友
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_teamtrip_page()
    Action.clickByText("组队出行")
    sleep(2)
    if UIChecker.checkByText("服务协议"):
        Action.clickByText("同意并继续")
        Action.clickByText("创建队伍")
    sleep(5)
    for i in range(5):
        Action.clickByResourceId(BaiduMap.Zoom_out_id)
    Action.clickByResourceId(BaiduMap.Team_show_id)
    Action.clickByText("邀请好友")
    Judge.passIf(self, UIChecker.checkByTextContains("您的队伍口令为"), "点击邀请好友")

def test_83(self):
    """进入组队出行,修改队伍名称
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_teamtrip_page()
    Action.clickByText("组队出行")
    sleep(2)
    if UIChecker.checkByText("服务协议"):
        Action.clickByText("同意并继续")
        Action.clickByText("创建队伍")
    sleep(5)
    Action.clickByResourceId(BaiduMap.Team_setting_id)
    Action.clickByResourceId(BaiduMap.Team_edit_id)
    # Action.setTextByResourceId(BaiduMap.Team_input_id, 'T2@i?')
    # Action.adb_cmd("adb shell input keyevent 4")
    # sleep(1)
    # Judge.passIf(self, UIChecker.checkByTextContains("T2@i?"), "修改队伍名称")

# def test_120(self):
#
#     os.popen("adb reboot").readline()
#     sleep(100)

def test_84(self):
    """进入导航设置的导航语音界面
    """
    basemap.enter_map()
    # Action.backToPre()
    basemap.enter_settings()
    sleep(2)
    basemap.enter_navi_settings()
    sleep(2)
    Action.clickByText("导航语音")
    sleep(2)
    if UIChecker.checkByTextContains("网络未连接"):
        pass
    else:
        Judge.passIf(self, UIChecker.checkByTextContains("普通话"), "进入导航语音界面")

def test_85(self):
    """进入导航语音,点击angel萌语音
    """
    basemap.enter_map()
    sleep(2)
    basemap.enter_settings()
    sleep(2)
    basemap.enter_navi_settings()
    Action.clickByText("导航语音")
    sleep(2)
    Action.clickByText("angel萌")
    sleep(3)
    if UIChecker.checkByText("确定"):
        Action.clickByText("确定")
    Judge.passIf(self, UIChecker.checkByTextContains("使用中"), "点击angel萌语音")

def test_86(self):
    """进入导航设置,清除缓存
    """
    basemap.enter_map()
    sleep(2)
    basemap.enter_settings()
    sleep(2)
    basemap.enter_navi_settings()
    Action.clickByScrollText("清除缓存")
    if UIChecker.checkByText("确认要清除缓存吗?"):
        Action.clickByText("确定")
    Judge.passIf(self, UIChecker.checkByTextContainsWait("0KB"), "清除缓存")

# def test_87(self):
#     """进入导航设置,修改爱车名称
#     """
#     basemap.enter_map()
#     basemap.enter_settings()
#     basemap.enter_navi_settings()
#     Action.clickByScrollText("爱车名称")
#     Action.clearTextByResourceId(BaiduMap.Edit_carname_id)
#     Action.setTextByResourceId(BaiduMap.Edit_carname_id, "@My_Car_01~")
#     sleep(1)
#     Action.clickByText("保存")
#     Judge.passIf(self, UIChecker.checkByTextContains("@My_Car_01~"), "修改爱车名称")

# def test_88(self):
#     """进入导航设置,删除爱车名称并保存
#     """
#     basemap.enter_map()
#     basemap.enter_settings()
#     basemap.enter_navi_settings()
#     Action.clickByScrollText("爱车名称")
#     Action.clearTextByResourceId(BaiduMap.Edit_carname_id)
#     sleep(1)
#     Action.clickByText("保存")
#     Judge.passIf(self, UIChecker.checkByTextContains("我的汽车"), "删除爱车名称并保存")

def test_89(self):
    """进入导航设置,设置经典车标
    """
    basemap.enter_map()
    sleep(2)
    basemap.enter_settings()
    sleep(2)
    basemap.enter_navi_settings()
    sleep(2)
    Action.clickByScrollText("设置车标")
    Action.clickByText("经典车标")
    Action.adb_cmd("adb shell input keyevent 4")
    sleep(2)
    Judge.passIf(self, UIChecker.checkByTextContains("经典"), "设置经典车标")

def test_90(self):
    """进入导航设置,设置林肯车标
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_navi_settings()
    Action.clickByScrollText("设置车标")
    Action.clickByText("林肯车标")
    Action.adb_cmd("adb shell input keyevent 4")
    sleep(2)
    Judge.passIf(self, UIChecker.checkByTextContains("林肯"), "设置林肯车标")

def test_91(self):
    """进入导航设置,打开限行开关
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_navi_settings()
    Action.swipeDiretion(BaiduMap.Edit_carlimit_id, 'up', 15)
    sleep(2)
    Action.clickByText("开启")
    Judge.passIf(self, UIChecker.checkByTextContains("限行规定"), "打开限行开关")

@unittest.skip("error")
def test_92(self):
    """进入限行规定,查找珠海并点击
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_navi_settings()
    Action.swipeDiretion(BaiduMap.Edit_carlimit_id, 'up', 15)
    sleep(2)
    Action.clickByText("开启")
    Action.clickByText("限行规定")
    sleep(3)
    Action.clickByScrollText("珠海")
    sleep(3)
    Judge.passIf(self, UIChecker.checkByTextContains("珠海市"), "查找珠海并点击")

def test_93(self):
    """进入关于我们,点击法律资质
    """
    basemap.enter_map()
    basemap.enter_settings()
    Action.swipeDiretion(BaiduMap.Navi_setting_id, 'up', 5)
    Action.clickByText("关于我们")
    Action.clickByText("法律资质")
    config.logger.info("进入法律资质界面")

def test_94(self):
    """进入关于我们,点击服务条款
    """
    basemap.enter_map()
    basemap.enter_settings()
    Action.swipeDiretion(BaiduMap.Navi_setting_id, 'up', 5)
    Action.clickByText("关于我们")
    Action.clickByText("服务条款")
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.Service_text_id), "点击服务条款")

def test_95(self):
    """进入关于我们,点击帮助按钮
    """
    basemap.enter_map()
    basemap.enter_settings()
    Action.swipeDiretion(BaiduMap.Navi_setting_id, 'up', 5)
    Action.clickByText("关于我们")
    Action.clickByResourceId(BaiduMap.About_Help_id)
    Judge.passIf(self, UIChecker.checkByTextContains("帮助"), "点击帮助按钮")

@unittest.skip("error")
def test_96(self):
    """进入关于我们,遍历帮助列表
    """
    help = ("1.离线地图有什么用", "2.如何下载或更新离线地图", "3.如何使用二维码扫描登录",
            "4.如何设置导航偏好", "5.如何设置我的车牌号限行", "6.如何设置沿途搜索")
    basemap.enter_map()
    basemap.enter_settings()
    Action.swipeDiretion(BaiduMap.Navi_setting_id, 'up', 5)
    Action.clickByText("关于我们")
    Action.clickByResourceId(BaiduMap.About_Help_id)
    for i in help:
        Action.clickByText(i)
        sleep(2)
        Action.adb_cmd("adb shell input keyevent 4")
        sleep(2)
    config.logger.info("遍历帮助列表")

@unittest.skip("error")
def test_97(self):
    """在首页底图,进行反GEO操作
    """
    basemap.enter_map()
    Action.swipeLeftAtCenter()
    sleep(1)
    d.long_click(400, 500)
    sleep(2)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.Search_around_id), "进行反GEO操作")

@unittest.skip("error")
def test_98(self):
    """从POI详情页进入周边搜,并输入检索词
    """
    basemap.enter_map()
    Action.swipeLeftAtCenter()
    sleep(2)
    d.long_click(500, 600)
    sleep(3)
    Action.clickByResourceId(BaiduMap.Search_around_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.Search_input_id), "从POI详情页进入周边搜")
    Action.clickByResourceId(BaiduMap.Search_input_id)
    Action.setTextByResourceId(BaiduMap.Search_input_id, "~@$UYHdygis/ 打开===++")
    sleep(2)

def test_99(self):
    """设置组队出行目的地
    """
    input = "输入目的地"
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_teamtrip_page()
    Action.clickByText("组队出行")
    sleep(2)
    if UIChecker.checkByText("服务协议"):
        Action.clickByText("同意并继续")
        Action.clickByText("创建队伍")
    sleep(5)
    Action.clickByText(input)
    sleep(2)
    Action.clickByText(input)
    Action.setTextByResourceId(BaiduMap.Input_via_id, "世界之窗")
    # Action.setTextByResourceId(BaiduMap.Input_via_id, "最好用的导航")
    sleep(3)
    Action.clickByResourceId(BaiduMap.Poi_gobtn_id)
    sleep(3)
    Judge.passIf(self, UIChecker.checkByTextContains("同步终点"), "设置组队出行目的地")
    Action.clickByText("同步终点")
    sleep(2)

@unittest.skip('no need')
def test_100(self):
    """进入组队出行,进行抢麦
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_teamtrip_page()
    Action.clickByText("组队出行")
    sleep(1)
    if UIChecker.checkByText("服务协议"):
        Action.clickByText("同意并继续")
        Action.clickByText("创建队伍")
    sleep(5)
    Action.clickByText("点击说话")
    sleep(1)
    Judge.passIf(self, UIChecker.checkByTextContains("准备中"), "进行抢麦")

@unittest.skip("no need")
def test_101(self):
    """抢麦后点击返回键结束抢麦
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_teamtrip_page()
    Action.clickByText("组队出行")
    sleep(1)
    if UIChecker.checkByText("服务协议"):
        Action.clickByText("同意并继续")
        Action.clickByText("创建队伍")
    sleep(5)
    Action.clickByText("点击说话")
    Action.adb_cmd("adb shell input keyevent 4")
    if UIChecker.checkByText("确认要停止讲话吗"):
        Action.clickByText("确认")
    Judge.passIf(self, UIChecker.checkByTextContains("组队出行"), "结束抢麦")

def test_102(self):
    """进入路线规划页,切换成时间偏好并导航
    """
    basemap.enter_map()
    basemap.enter_routeplan()
    Action.clickByResourceId(BaiduMap.Route_down_id)
    Action.clickByText("时间优先")
    sleep(2)
    basemap.click_agree_buttom()
    basemap.close_navi()
    sleep(1)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_103(self):
    """进入路线规划页,切换成少收费并导航
    """
    basemap.enter_map()
    basemap.enter_routeplan()
    Action.clickByResourceId(BaiduMap.Route_down_id)
    Action.clickByText("少收费")
    sleep(2)
    basemap.click_agree_buttom()
    basemap.close_navi()
    sleep(1)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_104(self):
    """进入路线规划页,切换成躲避拥堵并导航
    """
    basemap.enter_map()
    basemap.enter_routeplan()
    Action.clickByResourceId(BaiduMap.Route_down_id)
    Action.clickByText("躲避拥堵")
    sleep(2)
    basemap.click_agree_buttom()
    basemap.close_navi()
    sleep(1)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_105(self):
    """进入路线规划页,切换成不走高速并导航
    """
    basemap.enter_map()
    basemap.enter_routeplan()
    Action.clickByResourceId(BaiduMap.Route_down_id)
    Action.clickByText("不走高速")
    sleep(2)
    basemap.click_agree_buttom()
    basemap.close_navi()
    sleep(1)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_106(self):
    """进入路线规划页,切换成高速优先并导航
    """
    basemap.enter_map()
    basemap.enter_routeplan()
    Action.clickByResourceId(BaiduMap.Route_down_id)
    Action.clickByText("高速优先")
    sleep(2)
    basemap.click_agree_buttom()
    basemap.close_navi()
    sleep(1)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_107(self):
    """进行sug检索
    """
    basemap.enter_map()
    basemap.enter_poi_search("世界之窗")
    sleep(3)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.Poi_gobtn_id), "sug检索")

def test_108(self):
    """进行精确匹配搜索
    """
    basemap.enter_map()
    basemap.enter_poi_search("世界之窗")
    sleep(1)
    Action.clickByText("搜索")
    sleep(3)
    Judge.passIf(self, UIChecker.checkByTextContains("世界之窗"), "进行精确匹配检索")

def test_109(self):
    """检索不到结果
    """
    basemap.enter_map()
    basemap.enter_poi_search("****&?")
    sleep(1)
    Action.clickByText("搜索")
    sleep(2)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.Search_nothing_id), "检索不到结果")

def test_110(self):
    """清空历史记录
    """
    basemap.enter_map()
    basemap.enter_poi_search("世界之窗")
    sleep(1)
    Action.clickByText("搜索")
    sleep(3)
    Action.adb_cmd("adb shell input keyevent 4")
    Action.adb_cmd("adb shell input keyevent 4")
    Judge.passIf(self, UIChecker.checkByTextContains("清空历史记录"), "一次检索")
    Action.clickByText("清空历史记录")
    sleep(1)
    Action.clickByText("确定")
    Judge.passUnless(self, UIChecker.checkByTextContains("清空历史记录"), "确认清空历史记录")

def test_111(self):
    """跨市导航
    """
    basemap.enter_map()
    sleep(2)
    basemap.enter_poi_and_navi("广州南站")
    Action.clickByText("搜索")
    sleep(2)
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
        sleep(2)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_112(self):
    """跨省导航
    """
    basemap.enter_map()
    basemap.enter_poi_search("张家界")
    # basemap.enter_poi_and_navi("张家界")
    if UIChecker.checkByResourceId(BaiduMap.Quit_btn_id):
        Action.clickByResourceId(BaiduMap.Quit_btn_id)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.First_location_id), "退出导航")

def test_113(self):
    """进入POI详情页
    """
    basemap.enter_map()
    basemap.enter_poi_search("广州大学城")
    sleep(3)
    Action.clickByText("搜索")
    sleep(3)
    Action.clickByResourceId(BaiduMap.Poi_title_id)
    sleep(1)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.Search_around_id), "进入POI详情页")

def test_114(self):
    """搜索结果包含多城市
    """
    basemap.enter_map()
    basemap.enter_poi_search("迪士尼乐园")
    sleep(3)
    Action.clickByText("搜索")
    sleep(3)
    Judge.passIf(self, UIChecker.checkByTextContains("请选择下列城市进行搜索"), "搜索结果包含多城市")

def test_115(self):
    """电话搜索
    """
    basemap.enter_map()
    basemap.enter_poi_search("10086")
    sleep(3)
    Judge.passIf(self, UIChecker.checkByTextContains("移动营业厅"), "电话搜索")

def test_116(self):
    """切换黑夜模式
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_navi_settings()
    Action.clickByText("黑夜")
    Action.adb_cmd("adb shell input keyevent 4")
    basemap.enter_poi_and_navi("世界之窗")

def test_117(self):
    """导航前切换到静音,导航中打开声音
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_navi_settings()
    Action.clickByText("静音")
    Action.adb_cmd("adb shell input keyevent 4")
    basemap.enter_poi_and_navi("世界之窗")
    Action.swipeLeftAtCenter()
    Action.waiting(1)
    Action.clickByResourceId(BaiduMap.Traffic_voice_id)
    sleep(1)
    Judge.passIf(self, UIChecker.checkByTextWait("已开启“导航声音”"), "开启导航声音")

def test_118(self):
    """点击去公司按钮,进行导航
    """
    basemap.enter_map()
    input = "输入目的地"
    Action.clickByText(input)
    Action.clickByText("去公司")
    # if UIChecker.checkByTextWait(input):
    #     sleep(1)
    #     Action.setTextByResourceId(BaiduMap.Input_via_id, "世界之窗")
    #     sleep(5)
    #     Action.clickByResourceId(BaiduMap.Search_jc_id)
    #     sleep(3)
    #     Judge.passIf(self, UIChecker.checkByTextWait("去公司"), "设置公司地址")
    #     Action.clickByText("去公司")
    sleep(5)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.Start_navigation), "跳转到路线规划界面")
    Action.clickByResourceId(BaiduMap.Start_navigation)
    Judge.passIf(self, UIChecker.checkByText('同意'), "百度地图导航使用提示页面")
    Action.clickByText('同意')
    # basemap.click_agree_buttom()
    basemap.close_navi()
    # sleep(5)
    # Judge.passIf(self, UIChecker.checkByTextWait("开始导航"), "跳转到路线规划界面")
    # basemap.click_agree_buttom()
    # basemap.close_navi()

def test_119(self):
    """连续点击比例尺放大,缩小按钮,再点击定位按钮
    """
    basemap.enter_map()
    Action.clickByResourceId(BaiduMap.Traffic_btn_id)
    for i in range(10):
        Action.clickByResourceId(BaiduMap.Zoom_out_id)
    for i in range(10):
        Action.clickByResourceId(BaiduMap.Zoom_in_id)
    sleep(2)
    Action.clickByResourceId(BaiduMap.First_location_id)
    sleep(2)
    Judge.passIf(self, UIChecker.checkByResourceId(BaiduMap.Search_around_id), "点击定位按钮")

def test_120(self):
    """进入导航设置,设置播报模式静音
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_navi_settings()
    Action.clickByText("播报模式")
    sleep(2)
    Action.clickByText("静音")

def test_121(self):
    """进入导航设置,设置播报模式简洁
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_navi_settings()
    Action.clickByText("播报模式")
    sleep(2)
    Action.clickByText("简洁")

def test_122(self):
    """进入导航设置,设置播报模式详细
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_navi_settings()
    Action.clickByText("播报模式")
    sleep(2)
    Action.clickByText("详细")

def test_123(self):
    """进入导航设置,设置在线算路优先关闭
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_navi_settings()
    Action.clickByScrollText("在线算路优先")
    # sleep(2)
    Action.clickResourceIdChildClassAndIndex('com.baidu.naviauto:id/bt_routplan_mode',
                                             'android.widget.RadioButton',
                                             1)
    # Action.clickByText("关闭")

def test_124(self):
    """进入导航设置,设置自动切换巡航模式关闭
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_navi_settings()
    Action.clickByScrollText("自动切换巡航")
    # sleep(2)
    Action.clickResourceIdChildClassAndIndex('com.baidu.naviauto:id/bt_auto_cruiser',
                                             'android.widget.RadioButton',
                                             1)

    Action.clickByText("关闭")

def test_125(self):
    """进入导航设置,设置隐私模式开启
    """
    basemap.enter_map()
    basemap.enter_settings()
    basemap.enter_navi_settings()
    Action.clickByScrollText("隐私模式")
    # sleep(2)
    Action.clickResourceIdChildClassAndIndex('com.baidu.naviauto:id/bt_privacy_mode',
                                             'android.widget.RadioButton',
                                             1)
    # Action.clickByText("开启")

class sendEmail:
def sendemail(self):
# msg = email.mime.multipart.MIMEMultipart()
# msg[‘from’] = ‘shixinfa@baidu.com’
# msg[‘to’] = ‘shixinfa@baidu.com’
msg = MIMEMultipart()
tolist = [‘v_wangjiwei01@baidu.com’, ‘shixinfa@baidu.com’, ‘jinghenan@baidu.com’]
msg[‘from’] = ‘v_wangjiwei01@baidu.com’
msg[‘to’] = ‘,’.join(tolist)
msg[‘subject’] = “测试邮件”
content = “测试邮件内容”
txt = email.mime.text.MIMEText(content, ‘plain’, ‘utf-8’)
msg.attach(txt)
# 添加附件地址
part = MIMEApplication(open(r’/Users/v_wangjiwei01/Desktop/report.html’, ‘rb’).read())
part.add_header(‘Content-Disposition’, ‘attachment’, filename=“UI自动化测试结果111.html”) # 发送文件名称
msg.attach(part)

    smtp = smtplib.SMTP()
    smtp.connect('proxy-in.baidu.com', '25')
    smtp.sendmail(msg['from'], tolist, str(msg))

    print("发送成功!")

if name == ‘main’:
suite = unittest.TestSuite()
# #####suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestStringMethods))

suite.addTest(TestStringMethods('test_onlineCalculation_searchPages'))
suite.addTest(TestStringMethods('test_offlineCalculation_searchPages'))
suite.addTest(TestStringMethods('test_goHome_goCompany'))
suite.addTest(TestStringMethods('test_search_cityName'))
suite.addTest(TestStringMethods('test_city_calculateRoad'))
suite.addTest(TestStringMethods('test_no_high_speed'))
suite.addTest(TestStringMethods('test_high_speed_priority'))
suite.addTest(TestStringMethods('test_avoid_congestion'))
suite.addTest(TestStringMethods('test_priority_time'))
suite.addTest(TestStringMethods('test_intelligent_recommendation'))
suite.addTest(TestStringMethods('test_selectionPage_detailsPage_information'))
suite.addTest(TestStringMethods('test_openClose_naviSound'))
suite.addTest(TestStringMethods('test_route_preference'))
suite.addTest(TestStringMethods('test_incident_reporting'))
suite.addTest(TestStringMethods('test_searchAlong_theWay'))
suite.addTest(TestStringMethods('test_global_mode_switch'))
suite.addTest(TestStringMethods('test_page_display'))
suite.addTest(TestStringMethods('test_clickAgree_disclaimerPage'))
suite.addTest(TestStringMethods('test_clickNoAgree_disclaimerPage'))
suite.addTest(TestStringMethods('test_set_home_address'))
suite.addTest(TestStringMethods('test_set_company_address'))
suite.addTest(TestStringMethods('test_switch_browse_mode'))
suite.addTest(TestStringMethods('test_input_keywords'))
suite.addTest(TestStringMethods('test_keyword_search'))
suite.addTest(TestStringMethods('test_click_sug_search'))
suite.addTest(TestStringMethods('test_passing_point_icon'))
suite.addTest(TestStringMethods('test_routePoint_inputDestination'))
suite.addTest(TestStringMethods('test_team_management'))
suite.addTest(TestStringMethods('test_team_name_modification'))
suite.addTest(TestStringMethods('test_favorites_set_company_address'))
suite.addTest(TestStringMethods('test_favorites_set_home_address'))
suite.addTest(TestStringMethods('test_favorites_del_home_address'))
suite.addTest(TestStringMethods('test_favorites_del_company_address'))
suite.addTest(TestStringMethods('test_del_favorites_address'))
suite.addTest(TestStringMethods('test_i_want_report'))
suite.addTest(TestStringMethods('test_i_want_report5'))
suite.addTest(TestStringMethods('test_i_want_report1'))
suite.addTest(TestStringMethods('test_i_want_report2'))
suite.addTest(TestStringMethods('test_i_want_report3'))
suite.addTest(TestStringMethods('test_i_want_report4'))
suite.addTest(TestStringMethods('test_i_want_report6'))
suite.addTest(TestStringMethods('test_i_want_report7'))
suite.addTest(TestStringMethods('test_i_want_report8'))
suite.addTest(TestStringMethods('test_i_want_report9'))
suite.addTest(TestStringMethods('test_i_want_report10'))
suite.addTest(TestStringMethods('test_i_want_report11'))
suite.addTest(TestStringMethods('test_i_want_report12'))
suite.addTest(TestStringMethods('test_i_want_report13'))
suite.addTest(TestStringMethods('test_i_want_report14'))
suite.addTest(TestStringMethods('test_i_want_report15'))
suite.addTest(TestStringMethods('test_i_want_report17'))
suite.addTest(TestStringMethods('test_i_want_report18'))
suite.addTest(TestStringMethods('test_i_want_report19'))
suite.addTest(TestStringMethods('test_i_want_report20'))
suite.addTest(TestStringMethods('test_i_want_report21'))
suite.addTest(TestStringMethods('test_i_want_report22'))
suite.addTest(TestStringMethods('test_i_want_report23'))
suite.addTest(TestStringMethods('test_i_want_report24'))
suite.addTest(TestStringMethods('test_i_want_report25'))
suite.addTest(TestStringMethods('test_i_want_report26'))
suite.addTest(TestStringMethods('test_i_want_report27'))
suite.addTest(TestStringMethods('test_delete_voice_package'))
suite.addTest(TestStringMethods('test_download_voice_package'))
suite.addTest(TestStringMethods('test_download_status_display'))
suite.addTest(TestStringMethods('test_preference_message_notification'))
suite.addTest(TestStringMethods('test_searchAlongTheWay_gasStation'))
suite.addTest(TestStringMethods('test_searchAlongTheWay_atm'))
suite.addTest(TestStringMethods('test_searchAlongTheWay_chargingStation'))
suite.addTest(TestStringMethods('test_searchAlongTheWay_frontBackSwitch'))
suite.addTest(TestStringMethods('test_auto_day_nightMode'))
suite.addTest(TestStringMethods('test_voic_avoidCongestion'))
suite.addTest(TestStringMethods('test_voic_noHighSpeedRoute'))
suite.addTest(TestStringMethods('test_voic_chargeLess'))
suite.addTest(TestStringMethods('test_voic_highSpeedPriority'))
suite.addTest(TestStringMethods('test_openRoad'))
suite.addTest(TestStringMethods('test_closeRoad'))
suite.addTest((TestStringMethods('test_switchFollowMode')))
suite.addTest(TestStringMethods('test_switchDueNorthMode'))
suite.addTest(TestStringMethods('test_switch2DMode'))
suite.addTest(TestStringMethods('test_switch3DMode'))
suite.addTest(TestStringMethods('test_switchDayMode'))
suite.addTest(TestStringMethods('test_switchNightMode'))
suite.addTest(TestStringMethods('test_zoomInMap'))
suite.addTest(TestStringMethods('test_zoomOutMap'))
suite.addTest(TestStringMethods('test_HomeUIDisplay'))
suite.addTest(TestStringMethods('test_morePanels_UIDisplay'))
suite.addTest(TestStringMethods('test_packUp_morePanels'))
suite.addTest(TestStringMethods('test_morePanels_clickSearch'))
suite.addTest(TestStringMethods('test_favorites_page'))
suite.addTest(TestStringMethods('test_search_record_display'))
suite.addTest(TestStringMethods('test_click_clearHistory'))
suite.addTest(TestStringMethods('test_clear_cache_page_display'))
suite.addTest(TestStringMethods('test_clear_cache'))
suite.addTest(TestStringMethods('test_clear_cache_field_display'))
suite.addTest(TestStringMethods('test_cacheDataIs0_click_clear_cache'))
#suite.addTest(unittest.makeSuite(test_mapauto.MyTest))

# with open(r'/Users/v_wangjiwei01/Desktop/report01.html', 'wb') as fp:
#     runner = TestRunner(fp, title='Phase4UITest', description='Phase4UITestDetail', verbosity=2)
#     runner.run(suite)
#     emais = sendEmail()
#     emais.sendemail()
uiautomator2 自动化测试,简易Demo 基于Android自动化测试,uiautomator2 简单编写的Demo(JAVA); 简单命令使用,可以直接运行; 适合初学者; 立即下载

相关推荐

UiAutomator1.0和2.0_Android_API表与一些实例.

UiAutomator1.0和2.0_Android_API表与一些实例 内容: 1.一份包含1.0和2.0的xls表格式的api 2.一些关键类库的实例代码 3.一份uiautomator2.0_android工程样式 4.google官网uiautomator2.0 离线网页版本api

Python uiautomator2 自动化测试框架核心代码封装类,显示完整代码实例,提供200个函数实例并加上中文注释

Python uiautomator2 自动化测试框架核心代码封装类,显示完整代码实例,提供200个函数实例并加上中文注释。

HRD的博客 2450

uiautomator教程

详细描述android测试工具 Uiautomator 使用方法和教程,附例子

python(十二)Uiautomator2搭建UI自动化框架实战

前言 由于公司UI自动化框架底层用的是Uiautomator2,所以我就用Uiautomator2搭了一套UI自动化框架,并运用某软件做了一个实战,思路其实和之前写的Appnium一样的。 Appnium-企业微信UI自动化框架搭建:https://blog.youkuaiyun.com/Makasa/article/details/123963798?spm=1001.2......

Mikasa的博客 5545

Chapter 4 Ripple-Based Control Technique Part I

本文介绍了DC-DC转换器的纹波控制技术,重点分析了迟滞控制、恒定开通时间控制、恒定关断时间控制等方案的工作原理及优缺点。纹波控制无需补偿网络,具有快速瞬态响应和结构简单的优势,特别适合电池供电应用。其中,恒定开通时间控制在轻载时能自动延长关断时间,实现伪定频工作;而恒定关断时间控制轻载效率较低。文章还讨论了纹波注入技术解决Boost转换器右半平面零点问题,并比较了不同控制方案在负载瞬态下的性能表现。最后指出基于纹波的控制技术在提高调节精度和降低EMI方面的改进方向。

2304_76736886的博客 1301

从零配置Archery:手把手教你用Docker部署多数据库审核系统(MySQL/PostgreSQL/ClickHouse)

本文详细介绍了如何从零开始使用Docker部署Archery多数据库审核系统,涵盖MySQL、PostgreSQL和ClickHouse的配置与整合。文章提供了生产级Docker-compose配置、审核规则定制、工单流程设置以及企业微信通知集成等实战指南,帮助团队构建统一的企业级SQL审计平台,提升数据库操作规范与安全。

e4f5g6h7的博客 941

Android APP自动化工具uiautomator2超详细环境搭建+例子演示

UiAutomator是Google提供的安卓自动化测试Java库,功能很强,但测试脚本只能使用Java语言,uiautomator2是uiautomator的升级版,uiautomator2将uiautomator中的接口封装成了Python库,因此它支持的语言为Python。

weixin_49098230的博客 5783

MATLAB实战:从零推导合成孔径雷达(SAR)后向投影(BP)算法核心公式与代码实现

本文详细介绍了如何使用MATLAB从零推导合成孔径雷达(SAR)后向投影(BP)算法的核心公式与代码实现。通过基础概念讲解、数学原理推导、距离维脉冲压缩实现及完整MATLAB代码展示,帮助读者掌握SAR成像的关键技术。特别针对BP算法的优化技巧和常见问题提供了实用解决方案,适合雷达信号处理领域的开发者和研究者参考。

weixin_28683689的博客 251

uiautomator2学习5——一个简单的例子

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

qq_41255554的博客 496

实战教程:如何用Python+小波变换+CNN搞定医学影像中的条纹噪声(附完整代码)

本文提供了一套完整的实战方案,指导如何利用Python结合小波变换与卷积神经网络(CNN)去除医学影像中的条纹噪声。该方法通过小波变换精准定位噪声,再使用轻量化CNN进行针对性清除,有效保护图像细节,并附有可运行的完整代码,为医学影像处理与AI分析提供高效工具。

weixin_29056101的博客 268

别再手动填数据了!Vivado里用.coe文件给ROM IP核预装数据的保姆级教程

本文详细介绍了在Vivado中使用.coe文件为ROM IP核预装数据的全流程教程,包括文件格式规范、数据转换技巧和Vivado配置指南。通过自动化数据加载,开发者可以显著提升FPGA开发效率,避免手动输入错误,适用于查找表、波形存储等多种应用场景。

weixin_33377602的博客 337

Android APP自动化工具uiautomator2超详细环境搭建+例子演示_uiautomator2 安装

png)

2401_84009549的博客 923

PyTorch深度学习实战(36)——Pix2Pix详解与实现

Pix2Pix 是基于生成对抗网络的图像转换框架,能够将输入图像转换为与之对应的输出图像,能够广泛用于图像到图像转换的任务,如风格转换、图像修复、语义标签到图像的转换等。Pix2Pix 的核心思想是通过对抗训练将输入图像和目标输出图像进行配对,使生成网络可以学习到输入图像到输出图像的映射关系。在本节中,将学习使用 Pix2Pix 根据给定轮廓生成图像。

盼小辉丶的博客 1万+

python+uiautomator2+pytest app自动化测试实例

3、3 test_case文件中是测试用例(conftest.py除外),conftest.py的用法请度娘。我这conftest.py是前置处理启动的弹窗、签到弹窗的处理。我简单的按照底部四个tab进行划分写的用例,这里主要是home tab以及message tab的一些功能测试用例。3、1 Base.py是封装了一下是通过xpath获取元素定位以及其他方式获取元素定位的方法。3、2 Page_Element.py是存放元素定位的文件。test_case文件中test_home.py。

m0_70392075的博客 726

告别Python中间件!C#原生调用YOLOv11/v12:工业视觉检测零语言壁垒全流程

本文介绍了一种基于C#和ONNX Runtime的工业视觉检测解决方案,解决了传统YOLO模型在工业应用中面临的三大痛点:语言壁垒、性能损耗和模型更新困难。该系统采用三层架构设计,支持C#原生调用YOLO模型,无需中间件,性能损耗低于5%,满足工业产线30FPS+的实时性要求。文章详细阐述了环境搭建、模型导出规范、核心代码实现及工业级优化方案,提供可直接用于生产环境的完整流程,实现了训练与部署的解耦,显著降低了维护成本。该方案兼容主流YOLO版本,支持全平台部署,为工业视觉检测提供了高效可靠的C#集成方案。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 186

Winform从入门到精通(38)——StatusStrip(史上最全)

本文介绍StatusStrip控件的详细用法,包含所有属性和事件,绝对史上最全!

qq_34059233的博客 2758

Uiautomator 2.0实例

http://www.cnblogs.com/successcai/p/6102039.html https://testerhome.com/topics/3691 http://www.cnblogs.com/successcai/p/6102240.html 转载于:https://www.cnblogs.com/insist8089/p/7551180.html

weixin_30549657的博客 253

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

十分钟弄懂最快的APP自动化工具uiautomator2(入门到精通)

前言 相信很多使用appium做过APP自动化的人都深有感触: appium运行慢、时间长 uiautomatorviewer定位元素时得关掉appium server 在低版本的appium上获取toast需要切换automationName 现在有一款自动化测试工具uiautomator2,它几乎完美的避免了以上的问题。简单易学,对新手足够友好。本次我们介绍一下这款工具,让你在十分钟之内能迅速掌握它 一、介绍 uiautomator2是uiautomator的升级版,uiautomator是

weixin_67553250的博客 3万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Android自动化测试-UiAutomator环境搭建

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

qq_48811377的博客 487

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ADB驱动 + Uiautomator2 环境搭建(python自动化)

ADB驱动 + Uiautomator2 环境搭建 ADB驱动 ADB驱动下载 百度搜索ADB驱动下载并安装,我用的是adb1.4.3版本的,低版本有部分指令不兼容,比较麻烦。 可以去官网下载,也可以在各种软件网下载。搞颜色的,搜索能力都不差,对吧。 ADB安装 下载好后,点击 .exe 可执行文件,将会弹出蓝色窗口,一直 y y y就好了。 随后转入设备驱动程序安装向导(ADB驱动也不是特别大,直接跟着默认走就好了,现在都0202年了): 给ADB驱动配环境变量,如何配置环境变量就不详讲了。

肉猫子打包のBlog 2331

pythonuiautomator2_uiautomator2 使用Python测试 Android应用

uiautomator2 是一个可以使用Python对Android设备进行UI自动化的库。其底层基于Google uiautomator,Google提供的uiautomator库可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点:1、测试脚本只能使用Java语言。2、测试脚本必须每次被上传到设备上运行。 我们希望测试能够用一个更脚本化的语言,例如Python编写,...

weixin_39733943的博客 135

uiautomator2中xpath参数用法,可以自由拼接

在uiautomator2开发中,有时候无法根据元素现有的单一属性定位到元素,此时需要用到xpath方式获取元素,但是有时通过刷界面获取到的xpath又无法使用,那可以尝试自己拼接,这里主要记录XPATH的拼接方法。需要获取到IMEI1的值,但是resourceId等其他元素都不唯一,界面提供的XPTAH建议也不能用,但是发现它的父类唯一,因此可以通过层级目录拼出元素的xpath。父级目录可以与其他同属性的元素区分。

hanjie0302的博客 854

uiautomator使用

1.创建Java Project 2.JUnit选择Junit3(不支持4) ,导入uiautomator.jar和android.jar依赖。继承自UiAutomatorTestCase. 3.程序编写完之后,生成配置文件 sdk的tool目录下运行: android create uitest-project -n projectName -t targetID -p projectP

u010675455的专栏 920

uiautomator2学习2——uiautomator2介绍

前面有提到过安装weditor的同时也会下载其依赖包,其中包括uiautomator2,因为weditor的代码就是用的uiautomator2的那一套。上一篇文章讲到了weditor,可能会有同学问,代码那个d是什么?答案很简单,你点击一下按个“重置代码”按钮你就会看到了d是怎么来的。注意一下:一旦重置代码后,要把“import uiautomator2 as”、“d = u2.connect()” 这两行去掉,不然你进行运行整个代码的时候会出错。

qq_41255554的博客 584

1、uiautomator2常用语法

uiautomator2常用语法 连接设备 使用USB连接: d=u2.connect_USB('148b4090')输入手机序列号 d是给当前连接设备定位一个变量 获取设备的信息: print(d.info) 获取当前APP的活动窗口和包名: print(d.current_app()) 获取窗口的大小: print(d.window_size()) 打开关闭...

weixin_30678349的博客 371

uiautomator2 使用Python测试 Android应用

uiautomator2 使用Python测试 Android应用2018-03-01 09:33 by 虫师, 4575 阅读, 2 评论, 收藏, 编辑GitHub地址:https://github.com/openatx/uiautomator2介绍uiautomator2 是一个可以使用Python对Android设备进行UI自动化的库。其底层基于Google uiautomator...

jgw2008的专栏 1621
上一篇: monkeyrunner的基本
下一篇: python性能自动化
等风等雨
博客等级 码龄10年 42粉丝 223原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值