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


目录
相关文章
|
17天前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
68 8
|
3天前
|
人工智能 Linux API
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
PromptWizard 是微软开源的 AI 提示词自动化优化框架,通过自我演变和自我适应机制,迭代优化提示指令和上下文示例,提升大型语言模型(LLMs)在特定任务中的表现。本文详细介绍了 PromptWizard 的主要功能、技术原理以及如何运行该框架。
49 8
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
|
9天前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
33 7
|
22天前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
2月前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进
本文探讨了如何通过自动化和智能化手段,提升IT运维效率与质量。首先介绍了自动化在简化操作、减少错误中的作用;然后阐述了智能化技术如AI在预测故障、优化资源中的应用;最后讨论了如何构建一个既自动化又智能的运维体系,以实现高效、稳定和安全的IT环境。
81 4
|
2月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
67 4
|
27天前
|
机器学习/深度学习 运维 监控
智能化运维:从自动化到AIOps的演进之路####
本文深入探讨了IT运维领域如何由传统手工操作逐步迈向高度自动化,并进一步向智能化运维(AIOps)转型的过程。不同于常规摘要仅概述内容要点,本摘要将直接引入一个核心观点:随着云计算、大数据及人工智能技术的飞速发展,智能化运维已成为提升企业IT系统稳定性与效率的关键驱动力。文章详细阐述了自动化工具的应用现状、面临的挑战以及AIOps如何通过预测性分析和智能决策支持,实现运维工作的质变,引领读者思考未来运维模式的发展趋势。 ####
|
27天前
|
机器学习/深度学习 数据采集 人工智能
智能化运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的崛起背景,深入分析了其核心概念、关键技术、应用场景及面临的挑战,并对比了传统IT运维模式,揭示了AIOps如何引领运维管理向更高效、智能的方向迈进。通过实际案例分析,展示了AIOps在不同行业中的应用成效,为读者提供了对未来智能运维趋势的洞察与思考。 ####
68 1
|
1月前
|
机器学习/深度学习 数据采集 人工智能
智能运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的兴起背景、核心组件及其在现代IT运维中的应用。通过对比传统运维模式,阐述了AIOps如何利用机器学习、大数据分析等技术,实现故障预测、根因分析、自动化修复等功能,从而提升系统稳定性和运维效率。文章还深入分析了实施AIOps面临的挑战与解决方案,并展望了其未来发展趋势。 ####
|
1月前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
智能化运维:机器学习在故障预测和自动化响应中的应用
61 4