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()


目录
相关文章
|
20天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
63 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
2月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
3月前
|
敏捷开发 Java 测试技术
探索自动化测试的奥秘:从Selenium到Appium
【9月更文挑战第14天】软件测试,这个看似枯燥乏味却至关重要的领域,正经历着一场革命。随着技术的进步,自动化测试工具如Selenium和Appium已成为质量保证的利器。本文将带你一探这些工具的神秘面纱,了解它们如何简化测试流程、提升效率,并确保软件产品的质量。准备好,我们将深入自动化测试的世界,解锁其背后的原理和实践技巧。
|
4月前
|
测试技术 Android开发 iOS开发
Appium 是一个开源的自动化测试框架,它支持多种平台和多种编程语言
Appium是一款开源自动化测试框架,支持iOS和Android多平台及多种编程语言。通过WebDriver协议,开发者可编写自动化测试脚本。在iPhone上实现屏幕点击等操作需安装Appium及其依赖,启动服务器,并设置所需的测试环境参数。利用Python等语言编写测试脚本,模拟用户交互行为,最后运行测试脚本来验证应用功能。对于iPhone测试,需准备真实设备或Xcode模拟器。
124 1
|
4月前
|
Java 测试技术 API
探索自动化测试的奥秘:从Selenium到Appium
【8月更文挑战第31天】本文旨在引导读者理解自动化测试的重要性,并逐步深入介绍如何利用Selenium和Appium这两个强大的工具来提升测试效率和质量。文章不仅分享理论知识,还通过具体代码示例,展示如何在Web应用和移动应用测试中实施自动化策略。
|
4月前
|
测试技术 Android开发 iOS开发
探索自动化测试的奥秘:从Selenium到Appium
【8月更文挑战第31天】在软件测试的海洋中,自动化测试如同一艘快艇,带领我们高效地穿越波涛汹涌的手动测试海域。本文将带你从Selenium的网页自动化测试出发,一路驶向Appium的移动应用自动化测试岛屿,揭秘这两种工具如何改变软件测试的航向。你将看到代码示例的灯塔,指引你理解它们如何在实战中发挥作用,以及为什么掌握这些技能对于测试人员来说至关重要。
|
4月前
|
Java 测试技术 Android开发
探索自动化测试之美:从Selenium到Appium
【8月更文挑战第31天】在软件开发的世界中,测试是确保产品质量的关键步骤。随着技术的发展,自动化测试工具如Selenium和Appium成为了开发者的得力助手。本文将通过一个简单的代码示例,带领读者了解如何利用这些工具进行高效的自动化测试,确保软件的稳定性和可靠性,同时也让测试过程变得更加轻松有趣。
|
5月前
|
运维 数据安全/隐私保护 Python
Python基于telnetlib模块实现交换机全面巡检自动化运维项目
Python基于telnetlib模块实现交换机全面巡检自动化运维项目
167 14
|
5月前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
115 2
|
5月前
DC/AC电源模块在工业自动化中扮演着重要角色
DC/AC电源模块在工业自动化中扮演着重要角色
DC/AC电源模块在工业自动化中扮演着重要角色