def setup(self): # 创建一个字典,包装相应的启动参数 desired_caps = dict() # 需要连接的手机的平台(不限制大小写) desired_caps['platformName'] = 'Android' # 需要连接的手机的版本号(比如 5.2.1 的版本可以填写 5.2.1 或 5.2 或 5 ,以此类推) desired_caps['platformVersion'] = '5.1' # 需要连接的手机的设备号(andoird平台下,可以随便写,但是不能不写) desired_caps['deviceName'] = '192.168.56.101:5555' # 需要启动的程序的包名 desired_caps['appPackage'] = 'com.yunmall.lc' # 需要启动的程序的界面名 desired_caps[ 'appActivity'] = 'com.yunmall.ymctoc.ui.activity.MainActivity' # 告诉appium不重置应用 desired_caps['noReset'] = True # 支持中文 desired_caps['unicodeKeyboard'] = True desired_caps['resetKeyboard'] = True # 连接appium服务器 self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) self.home_page = HomePage(self.driver) self.my_page = MyPage(self.driver) self.address_page = AddressPage(self.driver) self.add_address_page = AddAddressPage(self.driver)
def login_my_page(driver, my_page): login_page = my_page.go_to_login_page() login_page.login_action('16533907260', 'cqcarlos1230') flag = my_page.check_login_status() if flag: logging.info('登录成功') else: logging.error('登录失败') # driver.get_screenshot('login_page', '登录失败.png') return MyPage(driver)
def flow_buy(self): '''购物流程''' self.ele_click_navigation() # 点击时令水果 self.ele_click_goods() # 点击第二个商品的“+” self.ele_tap_goods() # 同时点击1、2、3的“+” self.ele_view_goods() # 查看第四个商品的详情 self.ele_join_shopping_cart() # 加入购物车 self.ele_buying() # 立即购买 MyPage(self.driver).wechat_login() # 微信登录 self.ele_buying() # 立即购买 self.ele_shopping_adress() # 点击选择收货地址 self.ele_choice_adress() # 选择收货地址 self.ele_pay() # 去支付 self.ele_assert_two() #断言 result = self.driver.find_element(*self.loc_assert_two).text #断言 return result
def test_1(self): """选择商品 - 加入购物车 - 登录(未登录情况下)- 加入购物车 - 购物车结算 - 选择配送方式 - 提交订单""" #选择商品 - 加入购物车 hp = HomePage(self.driver) hp.join_shopping_car() #登录 username, password = ReadExcel('register') MyPage(self.driver).register(username, password) #加入购物车 hp.click_join_shopping_car() #点击确定 hp.click_confirm() #购物车 - 选择配送方式 - 提交订单 ShopingCarPage(self.driver).submit_oder()
def test_login(self): lg = MyPage(self.driver) result = lg.login() self.assertEqual("退出登录", result)
def go_to_my_page(self): logging.info('点击"我的"跳转到该页') self.find_element(*self.myb_tn_loc).click() return MyPage(self.driver)
class TestAddAddress: def setup(self): # 创建一个字典,包装相应的启动参数 desired_caps = dict() # 需要连接的手机的平台(不限制大小写) desired_caps['platformName'] = 'Android' # 需要连接的手机的版本号(比如 5.2.1 的版本可以填写 5.2.1 或 5.2 或 5 ,以此类推) desired_caps['platformVersion'] = '5.1' # 需要连接的手机的设备号(andoird平台下,可以随便写,但是不能不写) desired_caps['deviceName'] = '192.168.56.101:5555' # 需要启动的程序的包名 desired_caps['appPackage'] = 'com.yunmall.lc' # 需要启动的程序的界面名 desired_caps[ 'appActivity'] = 'com.yunmall.ymctoc.ui.activity.MainActivity' # 告诉appium不重置应用 desired_caps['noReset'] = True # 支持中文 desired_caps['unicodeKeyboard'] = True desired_caps['resetKeyboard'] = True # 连接appium服务器 self.driver = webdriver.Remote('http://*****:*****@pytest.mark.parametrize('args', analyze_data('address_data', 'test_add_address_case')) def test_add_address_case(self, args): name = args['name'] phone = args['phone'] address = args['address'] postcode = args['postcode'] # 关闭更新 self.home_page.click_close_update() # 点击我的 self.home_page.click_my_button() # 点击设置 self.my_page.click_set_button() # 点击地址管理 self.my_page.click_adress_button() # 点击新增地址 self.address_page.click_add_address() # 点击输入姓名 self.add_address_page.input_name(name) # 点击输入手机号码 self.add_address_page.input_phone(phone) # 点击省市区 self.add_address_page.click_province() # 点击添加输入详细地址 self.add_address_page.input_address(address) # 点击输入邮编 self.add_address_page.input_postcode(postcode) # 点击选择默认地址 self.add_address_page.click_default_address() # 点击保存 self.add_address_page.click_save() # 断言 新增默认地址是否是预期 assert self.address_page.get_default_name_phone_text() == '%s %s' % ( name, phone)
def test_exit_login(self): lg = MyPage(self.driver) result = lg.exit_login() self.assertEqual("登录/注册", result)
def my_page(self): """我的页面""" return MyPage(self.driver)
def goto_my(self): self.step('../steps/points_page.yaml', 'goto_my') from page.my_page import MyPage return MyPage(self.driver)
def my_page(driver, home_page): home_page.go_to_my_page() return MyPage(driver)
def my_page(self): return MyPage(self.driver)
def goto_my(self): self.step('../steps/main_page.yaml', 'goto_my') return MyPage(self.driver)