如题。该程序实现的动作是,打开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()