Appium自动化框架从0到1之 业务模块封装(登录页面业务操作)

简介: Appium自动化框架从0到1之 业务模块封装(登录页面业务操作)

我们这次来封装登录页面业务操作:


在上代码之前,我们先了解一下登录场景

image.png

然后,我们在登录的时候,会进行一下几个操作:


①我们先输入账号、密码,点击 登录按钮

②登录后,验证是否有下线提醒,

③登录后,验证是否登录成功

④退出登录


跟着这几步,我们来写代码:


loginView.py
# -*- coding: utf-8 -*-
"""
@ auth : carl_DJ
@ time : 2020-7-9
"""
import logging
from public.common_func import Common,By
from public.desired_caps import appium_desired
from selenium.common.exceptions import NoSuchElementException
class LoginView(Common):
    #登录界面元素设置
    username_input = (By.ID,'com.tal.kaoyan:id/login_email_edittext')
    password_input = (By.ID,'com.tal.kaoyan:id/login_password_edittext')
    login_btn = (By.ID,'com.tal.kaoyan:id/login_login_btn')
    #个人中心下线警告提醒确定按钮
    commitBtn = (By.ID,'com.tal.kaoyan:id/tip_commit')
    #个人中心元素
    myself_btn= (By.ID,'com.tal.kaoyan:id/mainactivity_button_mysefl')
    usercenter_name = (By.ID,'com.tal.kaoyan:id/activity_usercenter_username')
    #退出相关设置
    setting_btn = (By.ID,'com.tal.kaoyan:id/myapptitle_RightButtonWraper')
    logout_btn = (By.ID,'com.tal.kaoyan:id/setting_logout_text')
    tip_commit = (By.ID,'com.tal.kaoyan:id/tip_commit')
    def login_action(self,username,password):
        '''
        页面登录操作:
        输入用户名
        输入密码信息
        点击登录按钮
        '''
        #如果有更新,或者skip按钮,则直接点击
        self.check_upgradeBtn()
        self.check_skipBtn()
        # 登录
        logging.info('=======login_action=========')
        #在用户名输入框输入信息
        logging.info('username is %s' %username)
        self.driver.find_element(*self.username_input).send_keys(username)
        #在密码输入框输入信息
        logging.info('password is %s' %password)
        self.driver.find_element(*self.password_input).send_keys(password)
        #点击登录按钮
        logging.info('click login Button')
        self.driver.find_element(*self.login_btn).click()
        logging.info("login Finished !")
    def check_account_alert(self):
        '''
        检测账户登录后是否有账户下线提示
        :return:
        '''
        logging.info('=======check_account_alert=======')
        try:
            element = self.driver.find_element(*self.commitBtn)
        except NoSuchElementException:
            pass
        else:
            logging.info('click commitBtn')
            element.click()
    def check_loginStatus(self):
        '''
        检测登录状态,即验证是否登录成功状态
        :return:
        '''
        logging.info('======check_loginStatus=====')
        #如果有广告界面,直接点击关闭按钮
        self.check_market_ad()
        #如果有账号下线提醒,直接点击确定按钮
        self.check_account_alert()
        #使用try...except,在登录后页面获取任意一个元素,如果获取到,则表示登录成功,否则,登录失败
        try:
            self.driver.find_element(*self.myself_btn).click()
            self.driver.find_element(*self.usercenter_name)
        except NoSuchElementException:
            logging.error('login Fail !')
            self.getScreenShot("login Fail")
            return False
        else:
            logging.info("login success !")
            #退出登录
            self.logout_action()
            return True
    def logout_action(self):
        '''
        退出登录
        :return:
        '''
        logging.info('=======logout_action========')
        self.driver.find_element(*self.setting_btn).click()
        self.driver.find_element(*self.logout_btn).click()
        self.driver.find_element(*self.tip_commit).click()
if __name__ == '__main__':
    driver = appium_desired()
    l=LoginView(driver)
    l.login_action('小鱼1号','fish1')
    l.check_loginStatus()


目录
相关文章
|
14天前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
2天前
|
人工智能 安全 决策智能
OpenAI推出实验性“Swarm”框架,引发关于AI驱动自动化的争论
OpenAI推出实验性“Swarm”框架,引发关于AI驱动自动化的争论
|
15天前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
12天前
|
Web App开发 设计模式 测试技术
自动化测试框架的搭建与实践
【10月更文挑战第5天】本文将引导你理解自动化测试框架的重要性,并通过实际操作案例,展示如何从零开始搭建一个自动化测试框架。文章不仅涵盖理论,还提供具体的代码示例和操作步骤,确保读者能够获得实用技能,提升软件质量保障的效率和效果。
|
13天前
|
Web App开发 敏捷开发 Java
自动化测试框架的选择与应用
【10月更文挑战第4天】在软件开发的海洋中,自动化测试如同一艘航船,帮助开发者们快速穿越测试的波涛。选择适合项目的自动化测试框架,是确保航行顺利的关键。本文将探讨如何根据项目需求选择合适的自动化测试框架,并分享一些实用的代码示例,助你启航。
|
14天前
|
测试技术 持续交付 数据安全/隐私保护
软件测试的艺术与科学:探索自动化测试框架
【10月更文挑战第3天】在软件开发的海洋里,自动化测试犹如一艘航船,引领着项目向着质量的彼岸航行。本文将揭开自动化测试框架的神秘面纱,从理论到实践,深入浅出地探讨如何构建和运用这一工具,确保软件产品的稳定性和可靠性。我们将通过一个实际案例,展示自动化测试框架的搭建过程,以及它如何在提高测试效率、减少人力成本等方面发挥巨大作用。无论你是测试新手还是资深开发者,这篇文章都将为你提供宝贵的知识和启示。
|
15天前
|
敏捷开发 jenkins 测试技术
自动化测试框架的设计与实践
【10月更文挑战第2天】在软件开发周期中,测试阶段扮演着至关重要的角色。随着敏捷开发和持续集成的流行,自动化测试已成为确保软件质量和加快交付速度的关键工具。本文将深入探讨自动化测试框架的设计原则、组件选择、以及实现过程。通过实际案例分析,我们不仅展示了如何构建一个健壮的自动化测试框架,还讨论了如何克服常见问题,并提出了优化策略,以帮助读者更好地理解自动化测试的价值和实施细节。
|
17天前
|
敏捷开发 测试技术 持续交付
自动化测试框架的选择与应用
在软件开发的海洋中,自动化测试犹如一座灯塔,指引着质量保证的方向。本文将探讨如何根据项目需求选择适合的自动化测试框架,以及在实际工作中如何有效应用这些框架来提升软件质量和开发效率。我们将从框架的基本概念出发,逐步深入到框架选择的标准,最后通过实际案例分析,展示自动化测试框架的应用效果。
|
20天前
|
敏捷开发 测试技术 持续交付
探索自动化测试框架的设计与实现
【9月更文挑战第36天】在软件开发的海洋中,自动化测试如同一艘能够带领我们高效航行的帆船。本文将引导你理解自动化测试框架的核心概念,并通过一个简化的例子展示如何搭建自己的测试框架。我们将一同揭开自动化测试的神秘面纱,让你从新手成长为能够独立设计和实现测试框架的高手。
|
24天前
|
Web App开发 敏捷开发 数据管理
自动化测试框架的设计与实现
【9月更文挑战第32天】在软件开发的海洋中,自动化测试如同一艘精确导航的船只,确保我们的应用程序能够在波涛汹涌的技术潮流中稳健航行。本文将带你领略自动化测试框架的设计之美,从搭建基础到功能扩展,再到维护实践,我们将一起探索如何打造一个既高效又灵活的自动化测试体系。
25 3