class SettingFlow(object): def __init__(self, driver): self.setting_page = SettingPage(driver) self.common_page = CommonPage(driver) self.home_page = HomePage(driver) self.mine_page = MinePage(driver) self.common_flow = CommonFlow(driver) def goto_setting_page(self): self.mine_page.click_mine_tab() self.mine_page.click_setting() @allure.story("实名认证操作") def real_name_verification(self, scene=1, **kwargs): if scene == 2: # 设置入口 self.setting_page.click_real_name_verification() self.setting_page.click_username() # self.setting_page.input_username(kwargs["username"]) # self.setting_page.input_identification_number(kwargs["username"]) # 输入身份证 self.setting_page.click_next_step() self.common_flow.copy_verification_code_from_notification() self.setting_page.long_click_verification_code_box() self.common_page.click_paste() self.setting_page.click_finish() # 点完成按钮后会跳转到认证信息页 self.setting_page.check_on_certification_information_page() @allure.story("双击唤醒开关操作") def double_tap_power_switch(self): self.common_page.double_click_power_key() self.common_page.assert_text_exist("靠近读卡器") self.common_page.click_exit() self.setting_page.click_double_tap_power_switch() self.common_page.double_click_power_key() self.common_page.swipe_screen("up") self.setting_page.assert_text_exist("设置") self.setting_page.click_double_tap_power_switch() @allure.story("自动切卡操作") def auto_switch_card(self): self.setting_page.click_auto_switch() self.setting_page.click_auto_switch_switch() self.setting_page.click_loop_switch() self.setting_page.swipe_screen("up") self.setting_page.assert_text_exist("选择要切换的") self.setting_page.click_smart_switch() assert self.setting_page.check_text_existance( "选择要切换的") is False, "列表未收起" self.setting_page.click_loop_switch() self.setting_page.click_door_card() self.setting_page.click_specified_card(index=0) self.setting_page.click_dont_choose() self.setting_page.assert_text_exist("请选择") self.setting_page.click_door_card() self.setting_page.click_specified_card(index=0) self.setting_page.click_done() assert self.setting_page.check_text_existance( "请选择") is False, "未选择到指定的卡" @allure.story("一键修复操作") def one_click_repair(self): self.setting_page.click_one_click_repair() self.setting_page.click_start_repair() self.setting_page.assert_text_exist("未发现问题") self.setting_page.click_help_feedback() if self.setting_page.check_text_existance("加载中"): self.setting_page.wait_loading() self.setting_page.assert_text_exist("全部问题") self.setting_page.press_key("back") self.setting_page.click_complete() self.setting_page.assert_text_exist("设置") @allure.story("更改支付密码操作") def change_wallet_password(self, **kwargs): self.setting_page.click_password_setting() self.setting_page.click_change_password() self.common_page.input_wallet_password_h5(kwargs["wallet_password"]) self.common_page.input_wallet_password_h5( kwargs["new_wallet_password"]) self.common_page.input_wallet_password_h5( kwargs["new_wallet_password"]) assert self.setting_page.get_toast() == "密码修改成功", "密码修改toast提示异常" self.setting_page.assert_text_exist("更改支付密码") @allure.story("忘记支付密码操作") def forget_wallet_password(self, scene, **kwargs): self.setting_page.click_password_setting() self.setting_page.click_forget_password() if scene == 1: # 通过身份信息找回 self.setting_page.click_retrieve_through_id_info() self.setting_page.input_bank_card_number( kwargs["bank_card_number"]) self.setting_page.input_username2(kwargs["username"]) self.setting_page.input_identification_number2( kwargs["identification_number"]) self.setting_page.input_mobile_number(kwargs["mobile_number"]) self.setting_page.click_next() elif scene == 2: # 通过密保与手机号找回 self.setting_page.click_retrieve_through_security() self.setting_page.click_security_question() self.setting_page.input_security_answer(kwargs["security_answer"]) self.setting_page.click_next() self.common_flow.copy_verification_code_from_notification() self.setting_page.long_click_verification_code_box() self.common_page.click_paste() self.setting_page.click_next_step() self.common_page.input_wallet_password_h5( kwargs["new_wallet_password"]) self.common_page.input_wallet_password_h5( kwargs["new_wallet_password"]) assert self.setting_page.get_toast() == "密码重置成功", "密码重置toast提示异常" self.setting_page.assert_text_exist("更改支付密码") @allure.story("重置密保操作") def reset_security(self, **kwargs): self.setting_page.click_password_setting() self.setting_page.click_reset_security() self.common_page.input_wallet_password_h5(kwargs["wallet_password"]) self.setting_page.click_security_question( kwargs["new_security_question"]) self.setting_page.input_security_answer(kwargs["new_security_answer"]) self.setting_page.click_next() self.common_flow.copy_verification_code_from_notification() self.setting_page.long_click_verification_code_box() self.common_page.click_paste() self.setting_page.click_next_step() self.setting_page.assert_text_exist("注销") @allure.story("关闭服务入口操作") def close_function_entry(self, **kwargs): self.setting_page.click_service_management() self.setting_page.click_function_item() for function_name in kwargs["entry_list"]: self.setting_page.click_specific_function_item_switch( function_name) self.common_page.click_button2("关闭") for num in range(3): self.common_page.click_back_arrow() self.home_page.click_home_tab() assert self.home_page.check_text_existance( "精选专区") is False, "关闭精选专区后依然存在精选专区" self.home_page.scroll_to_boundary("end") self.home_page.click_open_more_services() self.setting_page.click_open_all() self.common_page.click_back_arrow() self.home_page.assert_text_exist("精选专区") @allure.story("协议、声明、版本核查操作") def check_protocol_statement_version(self): self.setting_page.swipe_screen("up") self.setting_page.assert_text_exist("版本号") self.setting_page.click_version() self.setting_page.click_service_management() self.setting_page.click_service_agreement() self.setting_page.scroll_to_boundary("end") self.common_page.click_back_arrow() self.setting_page.click_privacy_statement() self.setting_page.scroll_to_boundary("end") self.common_page.click_back_arrow() self.common_page.click_back_arrow() self.setting_page.assert_text_exist("设置") @allure.story("注销操作") def cancel_wallet_payment_account(self, scene=1, **kwargs): if scene == 2: # 实名认证入口 self.setting_page.click_real_name_verification() self.setting_page.click_cancel_account() self.setting_page.click_confirm_logout() self.common_page.input_wallet_password_h5(kwargs["wallet_password"]) assert self.setting_page.check_text_existance( "注销钱包支付账户") is False, "注销入口依然存在,注销失败" self.common_page.click_back_arrow() self.home_page.click_home_tab()
class TrafficFlow(object): def __init__(self, driver): self.home_page = HomePage(driver) self.common_page = CommonPage(driver) self.traffic_page = TrafficPage(driver) self.unionpay_flow = UnionPayFlow(driver) @allure.story("进入添加公交卡页操作") def goto_add_card_page(self, scene): if scene == 1: # 去乘车---立即开通 self.home_page.click_go_by_bus() # self.traffic_page.click_add_transit_card() elif scene == 2: # 去乘车---添加卡 self.home_page.click_go_by_bus() self.common_page.click_add_card() elif scene == 3: # 卡包---添加卡(+)---添加公交卡 self.home_page.click_card_package() self.home_page.click_add() self.home_page.click_add_transit_card() @allure.story("添加公交卡操作(通过搜索)") def open_transit_card(self, **kwargs): self.traffic_page.click_search_for_city_or_transit_card() self.traffic_page.input_search_info(kwargs["search_info"]) self.traffic_page.click_specified_transit_card_by_search( kwargs["transit_card_name"]) self.traffic_page.click_recharge_amount(kwargs["recharge_amount"]) self.traffic_page.click_open() if kwargs["transit_card_name"] == "京津冀互联互通卡": # self.traffic_page.input_mobile_number(kwargs["mobile_number"]) # 这里默认会自动填充会员账号的手机号 self.traffic_page.click_confirm() if kwargs["recharge_amount"] != "0": self.payment_channel_recharge(**kwargs) self.traffic_page.wait_generate_transit_card_process() self.traffic_page.click_finish() self.traffic_page.assert_text_exist("靠近读卡器") @allure.story("充值公交卡操作") def recharge_transit_card(self, **kwargs): self.home_page.click_go_by_bus() self.common_page.click_recharge() self.traffic_page.click_recharge_amount(kwargs["recharge_amount"]) self.traffic_page.click_pay() self.payment_channel_recharge(**kwargs) @allure.story("支付渠道充值操作") def payment_channel_recharge(self, **kwargs): self.traffic_page.click_specified_recharge_channel( kwargs["recharge_channel"]) self.traffic_page.click_recharge_button() if kwargs["recharge_channel"] == "OPPO Pay": self.unionpay_flow.oppo_pay_online_payment(**kwargs) elif kwargs["recharge_channel"] == "支付宝": pass # todo 使用支付宝支付流程,需要写在ThirdPartyFlow中 elif kwargs["recharge_channel"] == "微信": pass # todo 使用微信支付流程,需要写在ThirdPartyFlow中 @allure.story("遍历卡片详情页") def traverse_card_detail(self): self.home_page.click_go_by_bus() self.common_page.click_card_detail() self.traffic_page.click_card_info() self.traffic_page.assert_text_exist("卡号") self.common_page.click_back_arrow() self.traffic_page.click_transaction_record() self.traffic_page.assert_text_exist("无消费记录") self.traffic_page.swipe_screen("left") self.traffic_page.sleep(1.5) self.traffic_page.assert_text_exist("无充值记录") self.common_page.click_back_arrow() self.traffic_page.click_swipe_card() self.common_page.click_card_detail() self.common_page.click_more_options() self.common_page.click_popup_list_item("问题帮助") self.traffic_page.assert_text_exist("公交卡刷卡失败怎么办?") self.traffic_page.swipe_screen("left") self.traffic_page.swipe_screen("left") self.traffic_page.swipe_screen("right") self.common_page.click_back_arrow() self.traffic_page.click_recharge() self.traffic_page.assert_text_exist("选择充值金额") self.traffic_page.click_cancel() self.common_page.click_more_options() self.common_page.click_popup_list_item("用户协议") self.traffic_page.scroll_to_boundary("end") self.traffic_page.scroll_to_boundary("beginning") self.traffic_page.click_done() self.common_page.click_more_options() self.common_page.click_popup_list_item("切卡设置") self.traffic_page.assert_text_exist("公交") self.common_page.click_back_arrow() self.common_page.click_back_arrow() self.common_page.click_exit() self.home_page.assert_text_exist("去乘车") @allure.story("迁出公交卡操作") def shift_out_transit_card(self, **kwargs): self.home_page.click_go_by_bus() self.common_page.click_card_detail() self.traffic_page.click_migrate_transit_card() self.traffic_page.scroll_to_boundary("end") self.traffic_page.click_start_migrate() self.traffic_page.input_activate_card_mobile_number( kwargs["mobile_number"]) self.traffic_page.click_submit() self.traffic_page.wait_shift_out_transit_card_process() self.traffic_page.assert_text_exist("迁出完成") self.traffic_page.click_shift_out_finish() # self.traffic_page.assert_text_exist("卡包") @allure.story("迁入公交卡操作") def shift_in_transit_card(self, scene, **kwargs): self.home_page.click_go_by_bus() self.traffic_page.click_transferable_transit_card() self.traffic_page.click_shift_in_this_device() self.traffic_page.input_mobile_number2(kwargs["mobile_number"]) self.traffic_page.click_open() # self.traffic_page.click_continue() # 弹窗检测会点 self.traffic_page.wait_shift_in_transit_card_process() if scene == 1: # 从卡包迁卡 self.traffic_page.assert_text_exist("迁入成功") self.traffic_page.click_shift_in_finish() self.traffic_page.assert_text_exist("卡包") elif scene == 2: # 从去乘车迁卡 self.traffic_page.assert_text_exist("公交") self.common_page.click_exit() self.traffic_page.assert_text_exist("首页") @allure.story("删除公交卡操作") def delete_transit_card(self, **kwargs): self.home_page.click_go_by_bus() self.common_page.click_card_detail() self.common_page.click_more_options() self.common_page.click_popup_list_item("删卡") self.traffic_page.sleep(10) self.traffic_page.click_continue_deleting_card() self.common_page.click_button1("继续删除") # self.traffic_page.input_delete_card_mobile_number(kwargs["mobile_number"]) self.traffic_page.click_delete_reason_checkbox() self.traffic_page.swipe_screen("up") # self.traffic_page.click_other_reason_checkbox() # self.traffic_page.input_delete_card_reason(kwargs["delete_reason"]) self.traffic_page.click_continue_deleting_card() self.common_page.click_button1("确认删除") self.traffic_page.wait_delete_transit_card_process() # assert self.traffic_page.get_toast() == "删除成功", "删除公交卡卡异常" self.home_page.assert_text_exist("首页")