利用Appium Python测试爱壁纸的登录和设置壁纸

设置壁纸:

#coding:utf-8
#Import the common package
import os
import unittest
from appium import webdriver
from time import sleep

#设置路径信息
PATH = lambda p: os.path.abspath(
    os.path.join(os.path.dirname(__file__), p)
)

class LoginAndroidTests(unittest.TestCase):
    def setUp(self):
        #初始化测试平台
        desired_caps = {}
        desired_caps[‘platformName‘] = ‘Android‘
        desired_caps[‘platformVersion‘] = ‘4.4.2‘
        desired_caps[‘deviceName‘] = ‘127.0.0.1:62001‘
        #desired_caps[‘app‘] = ‘D:\apk\爱壁纸.apk‘
        desired_caps[‘appPackage‘] = ‘com.lovebizhi.wallpaper‘
        desired_caps[‘appActivity‘] = ‘com.lovebizhi.wallpaper.WelcomeActivity‘
        self.driver = webdriver.Remote(‘http://127.0.0.1:4723/wd/hub‘, desired_caps)

    def tearDown(self):

        self.driver.quit()

    def test_1(self):
        #测试导航页
        print("start test1...")

        #判断是否安装爱壁纸APP
        wallpaper = self.driver.is_app_installed("com.lovebizhi.wallpaper")
        if wallpaper:
            #self.driver.remove_app("com.lovebizhi.wallpaper")
            sleep(8)
            # 点击某一壁纸图片
            self.driver.find_elements_by_id("com.lovebizhi.wallpaper:id/image1")[4].click()
            sleep(4)
            # 点击设置壁纸
            self.driver.find_element_by_id("com.lovebizhi.wallpaper:id/btSetup").click()
            sleep(5)
        else:
            self.driver.install_app("D:\apk\爱壁纸.apk")
            sleep(30)

    def test_2(self):
        #测试导航页
        print("start test2")

        #判断是否安装爱壁纸APP
        wallpaper = self.driver.is_app_installed("com.lovebizhi.wallpaper")
        #是
        if wallpaper:
            sleep(8)
            # 点击某一壁纸图片
            self.driver.find_elements_by_id("com.lovebizhi.wallpaper:id/image1")[5].click()
            sleep(4)
            # 点击设置壁纸
            self.driver.find_element_by_id("com.lovebizhi.wallpaper:id/btSetup").click()
            sleep(5)
        #否,安装
        else:
            self.driver.install_app("D:\apk\爱壁纸.apk")
            sleep(30)

if __name__ == ‘__main__‘:
    suite =unittest.TestLoader().loadTestsFromTestCase(LoginAndroidTests)
    unittest.TextTestRunner(verbosity=2).run(suite)

爱壁纸登录:

三种:微博、QQ、爱壁纸

#coding:utf-8
#Import the common package
import os
import unittest
from appium import webdriver
from time import sleep

__author__ = ‘sker‘

#设置路径信息
PATH = lambda p: os.path.abspath(
    os.path.join(os.path.dirname(__file__), p)
)

class LoginAndroidTests(unittest.TestCase):

    """
    loginMethod:登录的方法
    method:传入的字符串
    """
    def loginMethod(self,method):
        try:
            self.method = self.driver.find_element_by_class_name(method)
        except Exception as e:
            self._logins[method] = False
            print(e)
        else:
            self._logins[method] = True
    """
    toLoginPage:跳转到登录界面
    """
    def toLoginPage(self):
        #判断是否安装爱壁纸APP
        wallpaper = self.driver.is_app_installed("com.lovebizhi.wallpaper")
        if wallpaper:
            sleep(2)
            print(u"已经安装爱壁纸")
            # 点击头部的菜单栏
            self.driver.find_element_by_id("com.lovebizhi.wallpaper:id/logo").click()
            print(u"出现隐藏的菜单栏")
            sleep(2)
            print(u"当前的activity是" + self.driver.current_activity)
            # 点击登录头像
            self.driver.find_element_by_id("com.lovebizhi.wallpaper:id/ivFace").click()
            print(u"跳转到登录页面")
            sleep(2)
            print(u"获取控件名称")
            for context in self.driver.contexts:
                print(context)
            sleep(2)
            print(u"切入h5的webdriver控件")
            self.driver.switch_to.context("WEBVIEW_com.lovebizhi.wallpaper")
            sleep(2)

        else:
            print(u"开始安装apk")
            self.driver.install_app("D:\apk\爱壁纸.apk")
            sleep(30)

    """
    weiBo:微博登录
    username:用户名
    password:密码
    """
    def weiBo(self,username,password):
        if(self._logins["weibo"]):
            self.method.click()
            print(u"进入通过微博登录")
            sleep(5)
            print(u"输入用户名和密码")
            self._username = self.driver.find_element_by_id("userId")
            self._username.send_keys(username)
            self._pwd = self.driver.find_element_by_id("passwd")
            self._pwd.send_keys(password)
            sleep(2)
            print(u"点击登录")
            self.driver.find_element_by_class_name("btnP").click()
            sleep(5)
        else:
            print(u"无法用微博登录")

    """
    QQ:QQ登录
    username:用户名
    password:密码
    """
    def QQ(self, username, password):
        if(self._logins["tencent"]):
            self.method.click()
            print(u"进入通过QQ登录")
            sleep(6)
            print(u"输入用户名和密码")
            self._username = self.driver.find_element_by_id("u")
            self._username.send_keys(username)
            self._pwd = self.driver.find_element_by_id("p")
            self._pwd.send_keys(password)
            sleep(2)
            print(u"点击登录")
            self.driver.find_element_by_id("go").click()
            sleep(5)
        else:
            print(u"无法用QQ登录")

    """
    paper:爱壁纸登录
    username:用户名
    password:密码
    """
    def paper(self,username,password):
        if(self._logins["lovebizhi"]):
            self.method.click()
            print(u"进入通过爱壁纸登录")
            sleep(6)
            print(u"输入用户名和密码")
            self._username = self.driver.find_element_by_id("user")
            self._username.send_keys(username)
            self._pwd = self.driver.find_element_by_id("pass")
            self._pwd.send_keys(password)
            sleep(2)
            print(u"点击登录")
            self.driver.find_element_by_id("login").click()
            sleep(5)
        else:
            print(u"无法用QQ登录")

    def setUp(self):
        #初始化测试平台
        desired_caps = {}
        desired_caps[‘platformName‘] = ‘Android‘
        desired_caps[‘platformVersion‘] = ‘4.4.2‘
        desired_caps[‘deviceName‘] = ‘127.0.0.1:62001‘
        #desired_caps[‘app‘] = ‘D:\apk\爱壁纸.apk‘
        desired_caps[‘appPackage‘] = ‘com.lovebizhi.wallpaper‘
        desired_caps[‘appActivity‘] = ‘com.lovebizhi.wallpaper.WelcomeActivity‘
        self.driver = webdriver.Remote(‘http://127.0.0.1:4723/wd/hub‘, desired_caps)
        #三种登录的方法,默认选中的都为False
        self._logins = {"weibo":False,"tencent":False,"lovebizhi":False}
        #跳转到登录界面
        self.toLoginPage();

    def tearDown(self):

        self.driver.quit()

    def test_weibo1(self):
        self.loginMethod("weibo")
        self.weiBo("admin","123456")
        sleep(4)
        self.assertEqual(u"admin",self.driver.find_element_by_class_name("logins_a_em").text)
        sleep(2)

    def test_QQ1(self):
        self.loginMethod("tencent")
        self.QQ("admin","123456")
        sleep(4)
        self.assertEqual(u"admin",self.driver.find_element_by_id("name").value)
        sleep(2)

    def test_paper1(self):
        self.loginMethod("lovebizhi")
        self.paper("admin","123456")
        sleep(4)

if __name__ == ‘__main__‘:
    suite =unittest.TestLoader().loadTestsFromTestCase(LoginAndroidTests)
    unittest.TextTestRunner(verbosity=2).run(suite)
时间: 2024-07-31 02:18:35

利用Appium Python测试爱壁纸的登录和设置壁纸的相关文章

Appium + Python 测试 QQ 音乐 APP的一段简单脚本

1. 大致流程 + 程序(Python):打开 QQ 音乐,点击一系列接收按键,进入搜索音乐界面,输入『Paradise』,播放第一首音乐. 2. Python 脚本如下 from appium import webdriver import time desired_caps = {} desired_caps['platformName'] = 'Android' # adb shell getprop ro.build.version.release 获得版本号 desired_caps[

Appium环境的安装与配置,Python测试脚本测试

Appium自动化测试系列1 - Appium环境的安装与配置 发表于4个月前(2015-01-27 14:34)   阅读(803) | 评论(0) 0人收藏此文章, 我要收藏 赞0 寻找 会’偷懒’的开发者线下公开课,报名即享受免费体验云主机 摘要 看了网上很多有关Appium的安装配置贴,都写得语焉不详,不清不楚,正好打算把自动化测试框架从Robotium切换到Appium, 顺手记录一下,给大家参考.转载请注明出处. Appium 安装 配置 测试 之前一直使用Robotium做为And

appium+python自动化50-生成定位对象模板templet(jinja2)

前言 每次自己写pageobject定位元素对象太繁琐,格式都差不多,只是换个定位方法,这种就可以才有模板的方式,批量生成pageobject定位元素对象的模板 python里面生成模板有两个模块可以选择:templet和mako 简单来说,本篇实现的目的是用代码去自动生成代码,做到代码自动化 接着上一篇讲:appium+python自动化49-yaml管理定位元素 jinja2简介 1.jinja2官方文档:官方文档 要了解jinja2,那么需要先理解模板的概念.模板在Python的web开发

python模拟腾讯网页登录

近日,研究Tencent网页模拟登录的过程,过程有些忐忑.先将结果写于此,供大家参考: 其加密过程在c_login_old.js文件中执行,将JS关键代码提取出来如下: function hexchar2bin(str) { var arr = []; for (var i = 0; i < str.length; i = i + 2) { arr.push("\\x" + str.substr(i, 2)) } arr = arr.join(""); eva

利用Hyper-V虚拟测试环境

因为最近需要用到Hyper-V环境,所以赶紧学习一下,顺便记录一下. Ⅰ.Hyper-V的硬件需求 这台计算机需要安装Windows Server 2008 R2或64位版本的Windows Server 2008,由于是64位操作系统,因此CPU必须是64位.同时Hyper-V还要求此计算机的硬件符合以下要求: 必须支持硬件辅助虚拟化技术(Hardware-assisted Virtualization),也就是CPU必须支持Intel VT(Intel Virtualization Tech

python爬虫scrapy框架——人工识别登录知乎倒立文字验证码和数字英文验证码(2)

操作环境:python3 在上一文中python爬虫scrapy框架--人工识别登录知乎倒立文字验证码和数字英文验证码(1)我们已经介绍了用Requests库来登录知乎,本文如果看不懂可以先看之前的文章便于理解 本文将介绍如何用scrapy来登录知乎. 不多说,直接上代码: import scrapy import re import json class ZhihuSpider(scrapy.Spider): name = 'zhihu' allowed_domains = ['www.zhi

利用 JavaScript SDK 部署网页版“Facebook 登录”

利用 JavaScript SDK 部署网页版"Facebook 登录" 通过采用 Javascript 版 Facebook SDK 的"Facebook 登录",用户可以使用 Facebook 凭据登录您的网页.即使您因为一些原因而无法使用我们的 JavaScript SDK,也一样可以实施"Facebook 登录". 要在不使用 JavaScript SDK 的情况下实施"Facebook 登录",请参阅手动构建登录流程

Appium + python自动化 - 启动app

各种百度将Appium + python的环境搭建好后,开启移动app自动化的探索(基于Android),首先来记录下如何启动待测的app吧! 如何启动app呢?首先要获取包名,然后获取launcherActivity.获取这两个关键东西的方法有很多,在这里推荐一个sdk自带的实用工具aapt:aapt即Android Asset Packaging Tool,在SDK的build-tools目录下.该工具可以查看apk包名和launcherActivity,当然还有更多的功能,有兴趣的可以查看

Appium+python自动化19-iOS模拟器(iOS Simulator)安装自家APP

前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itools安装.对于没有iPhone真机的小伙伴,想在iOS模拟器上安装app测试可不是那么容易的事情. 一.启动iOS Simulator 1.Xcode>Open Developer Tool>iOS Simulator,打开后在hardware里面选对应的iPhone版本就能启动模拟器了 2.第二