第一个appium自动化测试程序

如题。该程序实现的动作是,打开baiduMap,搜索地点,缩放地图。
这是第一个自动化测试程序脚本,从代码层面来说,包含了一些自动化测试的基本要求,例如,app的参数分离以便日后修改管理(YAML的使用),日志采集以及采集配置分离(logging的使用),通过使用try…except增强代码的延续性。此外,关于app界面元素的定位和对应的操作,也是关键的内容。元素定位的方法有很多,要做到灵活运用。

import time
from capability_by_yaml import *  #使用from...import就可以在后面的代码里不用带上引入的模块名称,否则会出错
from selenium.common.exceptions import NoSuchElementException
import logging
import logging.config

from appium.webdriver.common.touch_action import TouchAction
from appium.webdriver.common.multi_action import MultiAction

CON_LOG = 'log.conf'        #把日志采集器配置定义为一个常量。一般全大写字母表示常量?
logging.config.fileConfig(CON_LOG)
logging = logging.getLogger()


def startapp():
    logging.info('start app...')

    try:
        driver.find_element_by_id('com.baidu.BaiduMap:id/e1').click()
        
    except NoSuchElementException:
        logging.info('no such btn')

        try:
            driver.find_element_by_id('com.baidu.BaiduMap:id/a6e').click()

        except NoSuchElementException:
            logging.info('No such btn')

        else:
            logging.info('APP starts successfully ')

    else:
        logging.info('app starts successfully ')

class zoom():

    def zoom_out():

        x = driver.get_window_size()['width']
        y = driver.get_window_size()['height']

        action1 = TouchAction(driver)
        action2 = TouchAction(driver)
        zoom_out = MultiAction(driver)
        
        action1.press(x=x*0.2,y=y*0.2).wait(1000).move_to(x=x*0.4,y=y*0.4).wait(1000).release()
        action2.press(x=x*0.8,y=y*0.8).wait(1000).move_to(x=x*0.6,y=y*0.6).wait(1000).release()

        zoom_out.add(action1,action2)
        zoom_out.perform()

    def zoom_in():

        x = driver.get_window_size()['width']
        y = driver.get_window_size()['height']

        action1 = TouchAction(driver)
        action2 = TouchAction(driver)
        zoom_in = MultiAction(driver)
        
        action1.press(x=x*0.4,y=y*0.4).wait(1000).move_to(x=x*0.2,y=y*0.2).wait(1000).release()
        action2.press(x=x*0.6,y=y*0.6).wait(1000).move_to(x=x*0.8,y=y*0.8).wait(1000).release()

        zoom_in.add(action1,action2)
        zoom_in.perform()


def searchlct():

    driver.find_element_by_id('com.baidu.BaiduMap:id/to').click()
    driver.find_element_by_id('com.baidu.BaiduMap:id/c6a').send_keys('深圳北站')
    time.sleep(3)
    driver.find_element_by_id('com.baidu.BaiduMap:id/i9').click()
    
    # driver.find_element_by_id('com.baidu.BaiduMap:id/a2f').click()





startapp()
time.sleep(15)
searchlct()
time.sleep(15)
zoom.zoom_in()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值