微信小程序> appium启动小程序

appium启动小程序

浏览量:4580 时间: 来源:小太阳(#^.^#)

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  # 不存在则返回Falsedef 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()@classmethoddef tearDownClass(cls):    cls.driver.quit()

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

4、结果图
小程序

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎