appium启动小程序

1、配置小程序

coding:utf-8

author = ‘lili’

‘’’
description:driver配置
‘’’
import time
from appium import webdriver

class driver_configure():
@property
def get_driver(self):
# 获取driver
try:
desired_caps = {}
desired_caps[‘platformName’] = ‘Android’ # 平台
desired_caps[‘platformVersion’] = ‘23’ # 系统版本
desired_caps[‘deviceName’] = ‘c3756aa**’ # 设备名称
desired_caps[‘appPackage’] = ‘com.tencent.mm’ # APK包名
desired_caps[‘appActivity’] = ‘com.tencent.mm.ui.LauncherUI’ # 被测程序启动时的Activity
desired_caps[‘unicodeKeyboard’] = ‘true’ # 是否支持unicode的键盘。如果需要输入中文,要设置为“true”
desired_caps[‘resetKeyboard’] = ‘true’ # 是否在测试结束后将键盘重置为系统默认的输入法。
desired_caps[‘newCommandTimeout’] = ‘120’ # Appium服务器待appium客户端发送新消息的时间。默认为60秒
desired_caps[‘noReset’] = True # true:不重新安装APP,false:重新安装app
desired_caps[‘automationName’] = ‘uiautomator2’
desired_caps[‘chromeOptions’] = {‘androidProcess’: ‘com.tencent.mm:appbrand’} # 当前小程序运行的进程
self.driver = webdriver.Remote(‘http://127.0.0.1:4723/wd/hub’, desired_caps)
time.sleep(5)
return self.driver
except Exception as e:
print(‘启动失败’)
raise e

2、uiautomatorviewer页面元素定义

coding:utf-8

author = ‘lili’
‘’’
description:元素定义
‘’’
from common import Base_page
from appium.webdriver.common import mobileby
import time

class swipe_page(Base_page.Base_page):
by = mobileby.MobileBy()
item_fx = (by.XPATH, “//android.widget.TextView[@text=‘发现’]”) # 点击“发现”
item_xcx = (by.NAME, “小程序”) # 点击小程序
item_wdxcx = (by.NAME, “我的小程序”) # 点击我的小程序
item_kjxs = (by.NAME, “科技线上”) # 点击科技线上

def click_fx(self):
    self.find_element(*self.item_fx).click()      # 点击“发现”

def click_xcx(self):
    self.find_element(*self.item_xcx).click()     # 点击小程序
    time.sleep(3)
    self.find_element(*self.item_wdxcx).click()  # 点击我的小程序
    time.sleep(3)
    self.find_element(*self.item_kjxs).click()  # 点击科技线上

def swipe_down(self, n):   #      # 向下滑动
    x = self.driver.get_window_size()['width']
    y = self.driver.get_window_size()['height']
    for i in range(n):
        self.driver.swipe(x / 2, y * 3 / 4, x / 2, y / 4)

def swipe_up(self, n):
    '''上滑'''
    x = self.driver.get_window_size()['width']
    y = self.driver.get_window_size()['height']
    for i in range(n):
        self.driver.swipe(x / 2, y / 4, x / 2, y * 3 / 4)

3、启动小程序,以及具体的test_case

coding:utf-8

author = ‘lili’
‘’’
description:
‘’’
import unittest
from common import driver_configure
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

from src.pages.weixin_page import swipe_page
from src.pages.jfhome_page import home_page
from src.pages.wode_page import wode_page
from src.pages.itemdetail_page import detail_page
from src.pages.ConfirmationOrder_page import Confirmation_page
from src.pages.dhchenggong_page import chenggong_page
from src.pages.orderdetail_page import orderdetail_page

class test_jfsch(unittest.TestCase):
@classmethod
def setUpClass(cls):
dconfigur = driver_configure.driver_configure()
cls.driver = dconfigur.get_driver

'''
def test_01qidong(self):
    ''滑动进入微信启动小程序''
    #self.driver.find_element_by_android_uiautomator('text("微信")').click()  # 点击微信Tab
    self.swipe_page = swipe_page(self.driver)
    self.swipe_page.swipe_up(1)   # 屏幕向上滑动
    time.sleep(5)
    self.driver.find_element_by_name("科技线上").click()  # 点击顶部的图标"科技线上"进入小程序
    time.sleep(5)
    print(self.driver.contexts)    # 打印当前所有的上下文 
'''
def test_01qidong(self):
    '''从发现进入微信启动小程序'''
    print('启动积分商城小程序')
    self.swipe_page = swipe_page(self.driver)
    self.swipe_page.click_fx()   # 点击发现
    #self.swipe_page.swipe_down(1)
    self.swipe_page.click_xcx()   # 启动小程序
    time.sleep(5)
    print(self.driver.contexts)  # 打印当前所有的上下文
    self.driver.get_screenshot_as_file('D:/python/pyth-workspace/xiaochengxu/screenshot/1启动积分商城小程序.png')
    self.home_page = home_page(self.driver)
    self.assertEqual('首页', self.home_page.get_text())
    print('当前总积分数: ', self.home_page.get_zjf())

    print('获取当前总积分并转换成int型: ', int(self.home_page.get_zjf()[:-2]))  # 截取从头开始到倒数第二个字符之前的数据,并转化成int型
    #print('购买商品后的积分数: ', int(self.home_page.get_zjf()[:-2]) - 4)

def test_02login(self):
    '''登录小程序'''
    source = self.driver.page_source
    element = '登录后显示当前积分'
    print(source)
    if element in source:
        self.home_page = home_page(self.driver)
        self.home_page.click_wd()
        self.wode_page = wode_page(self.driver)
        self.wode_page.click_image()
        time.sleep(3)
        self.driver.get_screenshot_as_file('D:/python/pyth-workspace/xiaochengxu/screenshot/2登录积分商城小程序.png')
        self.assertEqual('18618481247', self.wode_page.get_phone())  # 查找ID元素,存在则直接返回
        self.home_page.click_wd()  # 点击首页
        return True
    else:
        print('登录成功')
        return False  # 不存在则返回False

def test_03create(self):
    '''纯积分兑换下单'''
    self.home_page = home_page(self.driver)
    Total_jf = int(self.home_page.get_zjf()[2:-2])   # 截取从头开始到倒数第二个字符之前的数据,并转化成int型
    print('当前总积分数只显示数字: ', Total_jf)
    #self.home_page.click_sy()
    time.sleep(3)
    print(self.driver.get_window_size())
    self.home_page.swipeDown()
    self.home_page.click_goods1()
    time.sleep(2)

    self.detail_page = detail_page(self.driver)
    print(self.driver.contexts)  # 打印当前所有的上下文
    self.driver.switch_to.context("NATIVE_APP")    # 切换上下文
    print(self.driver.current_context)   # 打印当前的上下文
    self.detail_page.click_dh()   # 立即兑换

    self.confirm_page = Confirmation_page(self.driver)
    self.confirm_page.click_dh()  # 点击确认兑换
    time.sleep(3)

    self.chenggong_page = chenggong_page(self.driver)
    self.driver.get_screenshot_as_file('D:/python/pyth-workspace/xiaochengxu/screenshot/3纯积分兑换下单成功,积分减少.png')
    self.assertEqual('兑换成功', self.chenggong_page.get_dhcg())

    #self.chenggong_page.click_jxdh()    #  点击按钮 继续兑换,返回首页列表
    self.chenggong_page.click_dhxq()  # 点击按钮 兑换详情,进入兑换详情页面
    time.sleep(3)

    self.orderdetail = orderdetail_page(self.driver)
    order_jf = int(self.orderdetail.get_zj()[5:-2])  # 获取订单商品积分数
    print('查看订单商品总价: ', order_jf)  # 截取从头开始到倒数第二个字符之前的数据,并转化成int型
    Current_jf = Total_jf - order_jf    # 购买商品后的积分数
    print('购买商品后的积分数: ', Current_jf)
    self.orderdetail.click_jxdh()  # 点击按钮 继续兑换,返回首页列表
    time.sleep(3)

    print('当前总积分数: ',  self.home_page.get_zjf())
    Total_jf1 = int(self.home_page.get_zjf()[2:-2])
    print(Current_jf)
    print(Total_jf1)
    if Current_jf == Total_jf1:
        print('总积分减少计算正确')
    else:
        print('总积分减少计算不正确')

def test_04create(self):
    '''积分+金额兑换线上支付下单'''
    self.home_page = home_page(self.driver)
    #self.home_page.click_sy()
    time.sleep(3)
    #self.home_page.swipe_down(1)
    self.home_page.click_goods2()
    time.sleep(3)

    self.detail_page = detail_page(self.driver)
   # print(self.driver.contexts)  # 打印当前所有的上下文
    #self.driver.switch_to.context("NATIVE_APP")    # 切换上下文
   # print(self.driver.current_context)   # 打印当前的上下文
    self.detail_page.click_dh()   # 立即兑换

    self.confirm_page = Confirmation_page(self.driver)
    self.confirm_page.click_dh()  # 点击确认兑换
    time.sleep(5)
    self.driver.back()

    self.chenggong_page = chenggong_page(self.driver)
    #self.chenggong_page.click_gb()
    #self.driver.back()
    time.sleep(3)
    self.driver.get_screenshot_as_file('D:/python/pyth-workspace/xiaochengxu/screenshot/4积分+金额兑换线上支付下单成功.png')
    self.assertEqual('订单等待支付', self.chenggong_page.get_dzf())

    self.driver.back()
    self.driver.back()

def test_05create(self):
    '''积分+金额兑换线下支付下单'''
    self.home_page = home_page(self.driver)
    # self.home_page.click_sy()
    time.sleep(3)
    # self.home_page.swipe_down(1)
    self.home_page.click_goods2()
    time.sleep(3)

    self.detail_page = detail_page(self.driver)
    # print(self.driver.contexts)  # 打印当前所有的上下文
    # self.driver.switch_to.context("NATIVE_APP")    # 切换上下文
    # print(self.driver.current_context)   # 打印当前的上下文
    self.detail_page.click_dh()  # 立即兑换

    self.confirm_page = Confirmation_page(self.driver)
    self.confirm_page.click_zffs()  # 选择支付方式 线下支付
    self.confirm_page.click_dh()  # 点击确认兑换
    time.sleep(3)

    self.chenggong_page = chenggong_page(self.driver)
    self.driver.get_screenshot_as_file('D:/python/pyth-workspace/xiaochengxu/screenshot/5积分+金额兑换线下支付下单成功.png')
    self.assertEqual('兑换成功', self.chenggong_page.get_dhcg())

    self.chenggong_page.click_jxdh()  # 点击按钮 继续兑换,返回首页列表

def test_06create(self):
    '''同一个商品兑换多个'''
    self.home_page = home_page(self.driver)
    # self.home_page.click_sy()
    time.sleep(3)
    # self.home_page.swipe_down(1)
    self.home_page.click_goods1()    # 点击商品
    time.sleep(3)

    self.detail_page = detail_page(self.driver)
    self.detail_page.click_tzdh()  # 添加商品并立即兑换
    time.sleep(3)

    self.confirm_page = Confirmation_page(self.driver)
    self.confirm_page.click_dh()  # 点击确认兑换
    time.sleep(3)

    self.chenggong_page = chenggong_page(self.driver)
    #self.driver.get_screenshot_as_file('D:/python/pyth-workspace/xiaochengxu/screenshot/6同一个商品兑换多个.png')
    #self.assertEqual('兑换成功', self.chenggong_page.get_dhcg())
    self.chenggong_page.click_dhxq()   # 点击按钮 兑换详情
    time.sleep(3)

    self.orderdetail = orderdetail_page(self.driver)
    self.driver.get_screenshot_as_file('D:/python/pyth-workspace/xiaochengxu/screenshot/6同一个商品兑换多个.png')
    self.assertEqual('商品总价:4积分', self.orderdetail.get_zj())        # 获取订单总价
    self.orderdetail.click_jxdh()  # 点击按钮 继续兑换,返回首页列表

def test_07create(self):
    '''取消积分兑换,积分退还'''
   # time.sleep(20)
    self.home_page = home_page(self.driver)
    Total_jf = int(self.home_page.get_zjf()[2:-2])   # 截取从头开始到倒数第二个字符之前的数据,并转化成int型
    print('当前总积分数: ', Total_jf)
    # self.home_page.click_sy()
    time.sleep(3)
    print(self.driver.get_window_size())
    #self.home_page.swipeDown()
    self.home_page.click_goods1()
    time.sleep(3)

    self.detail_page = detail_page(self.driver)
    print(self.driver.contexts)  # 打印当前所有的上下文
    self.driver.switch_to.context("NATIVE_APP")  # 切换上下文
    print(self.driver.current_context)  # 打印当前的上下文
    self.detail_page.click_dh()  # 立即兑换

    self.confirm_page = Confirmation_page(self.driver)
    self.confirm_page.click_dh()  # 点击确认兑换
    time.sleep(3)

    self.chenggong_page = chenggong_page(self.driver)
    self.driver.get_screenshot_as_file('D:/python/pyth-workspace/xiaochengxu/screenshot/3纯积分兑换下单成功,积分减少.png')
    self.assertEqual('兑换成功', self.chenggong_page.get_dhcg())

    # self.chenggong_page.click_jxdh()    #  点击按钮 继续兑换,返回首页列表
    self.chenggong_page.click_dhxq()  # 点击按钮 兑换详情,进入兑换详情页面
    time.sleep(3)

    self.orderdetail = orderdetail_page(self.driver)
    '''
    order_jf = self.orderdetail.get_zj()  # 获取订单商品积分数
    print('查看订单商品总价: ', int(order_jf[5:-2]))  # 截取从头开始到倒数第二个字符之前的数据,并转化成int型
    Current_jf = int(Total_jf[:-2]) - int(order_jf[5:-2])  # 购买商品后的积分数
    print('购买商品后的积分数: ', Current_jf)
    '''
    self.orderdetail.click_qxdh()  # 点击按钮 取消兑换
    time.sleep(2)

    self.assertEqual('订单取消成功 积分已退还', self.orderdetail.get_status())
    self.assertEqual('已取消', self.orderdetail.get_status1())
    self.driver.get_screenshot_as_file('D:/python/pyth-workspace/xiaochengxu/screenshot/7取消积分兑换,积分退还.png')

    self.orderdetail.click_jxdh()  # 点击按钮 继续兑换,返回首页列表
    time.sleep(3)

    print('当前总积分数: ', self.home_page.get_zjf())
    Total_jf1 = int(self.home_page.get_zjf()[2:-2])
    print(Total_jf)
    print(Total_jf1)
    if Total_jf == Total_jf1:
        print('总积分减少计算正确')
    else:
        print('总积分减少计算不正确')

def test_08create(self):
    '''修改自提门店下单'''
    #time.sleep(20)
    self.home_page = home_page(self.driver)
    Total_jf = int(self.home_page.get_zjf()[2:-2])   # 截取从头开始到倒数第二个字符之前的数据,并转化成int型
    print('当前总积分数只显示数字: ', Total_jf)
    #self.home_page.click_sy()
    time.sleep(3)
    print(self.driver.get_window_size())
    #self.home_page.swipeDown()
    self.home_page.click_goods1()
    time.sleep(4)

    self.detail_page = detail_page(self.driver)
    self.detail_page.modify_store()  # 修改自提门店
    self.detail_page.click_dh()   # 立即兑换
    time.sleep(2)

    self.confirm_page = Confirmation_page(self.driver)
    self.confirm_page.click_dh()  # 点击确认兑换
    time.sleep(3)

    self.chenggong_page = chenggong_page(self.driver)
    self.driver.get_screenshot_as_file('D:/python/pyth-workspace/xiaochengxu/screenshot/3纯积分兑换下单成功,积分减少.png')
    self.assertEqual('兑换成功', self.chenggong_page.get_dhcg())

    self.chenggong_page.click_dhxq()  # 点击按钮 兑换详情,进入兑换详情页面
    time.sleep(3)

    self.orderdetail = orderdetail_page(self.driver)
    self.driver.get_screenshot_as_file('D:/python/pyth-workspace/xiaochengxu/screenshot/8修改自提门店下单成功.png')
    self.assertIn('高济北京线上001', self.orderdetail.get_store())    # 获取自提门店

    self.orderdetail.click_jxdh()  # 点击按钮 继续兑换,返回首页列表
    time.sleep(3)

    print('当前总积分数: ',  self.home_page.get_zjf())


def test_09create(self):
    '''减少商品toast提示“亲,不能再少了”'''
    self.home_page = home_page(self.driver)
    # self.home_page.click_sy()
    time.sleep(3)
    # self.home_page.swipe_down(1)
    self.home_page.click_goods1()  # 点击商品![在这里插入图片描述](https://img-blog.csdnimg.cn/20200102152333367.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpeWFuZzg3MDkxMQ==,size_16,color_FFFFFF,t_70)
    time.sleep(3)

    self.detail_page = detail_page(self.driver)
    self.detail_page.click_jsh()  # 减少商品,弹出toast提醒
   # self.detail_page.find_toast("亲,不能再少了", 10, 0.01)
    self.driver.get_screenshot_as_file('D:/python/pyth-workspace/xiaochengxu/screenshot/9减少商品toast提示.png')
    self.driver.back()
    self.home_page.swipeUp()

@classmethod
def tearDownClass(cls):
    cls.driver.quit()

if name==‘main’:
unittest.main()

4、结果图
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值