from time import sleep
from appium import webdriver
import pytest class TestXueqiu: user_profile_id = "user_profile_icon"
login_more_id = "iv_login_more"
login_account_id = "login_account"
login_password_id = "login_password"
button_next_id = "button_next"
md_content_id = "md_content"
md_buttonDefaultPositive_id = "md_buttonDefaultPositive"
action_back_id = "iv_action_back"
buttonDefaultNegative_id = "md_buttonDefaultNegative"
action_back1_id = "action_back"
home_search_id = "home_search"
search_input_text_id = "search_input_text"
search_name_id = "name"
stockName_id = "stockName"
action_close_id = "action_close" def setup_class(self): caps = {}
caps["platformName"] = "Android"
caps["platformVersion"] = "8.1.0"
caps["deviceName"] = "60c106df0302"
caps["appPackage"] = "com.xueqiu.android"
caps["appActivity"] = ".view.WelcomeActivityAlias"
caps["noReset"] = True self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
self.driver.implicitly_wait(20) def test_wrong_phone(self): self.driver.find_element_by_id(self.user_profile_id).click()
self.driver.find_element_by_id(self.login_more_id).click()
login_account = self.driver.find_element_by_id(self.login_account_id)
login_account.clear()
login_account.send_keys("1311111111111111111")
login_password = self.driver.find_element_by_id(self.login_password_id)
login_password.clear()
login_password.send_keys("123456abc")
self.driver.find_element_by_id(self.button_next_id).click()
text = self.driver.find_element_by_id(self.md_content_id).get_attribute("text")
assert text == "手机号码填写错误"
self.driver.find_element_by_id(self.md_buttonDefaultPositive_id).click() def test_wrong_password(self):
login_account = self.driver.find_element_by_id(self.login_account_id)
login_account.clear()
login_account.send_keys("15958020294")
login_password = self.driver.find_element_by_id(self.login_password_id)
login_password.clear()
login_password.send_keys("123456abc111")
self.driver.find_element_by_id(self.button_next_id).click()
text = self.driver.find_element_by_id(self.md_content_id).get_attribute("text")
assert text == "用户名或密码错误"
self.driver.find_element_by_id(self.md_buttonDefaultPositive_id).click()
self.driver.find_element_by_id(self.action_back_id).click()
self.driver.find_element_by_id(self.buttonDefaultNegative_id).click()
self.driver.find_element_by_id(self.action_back1_id).click() @pytest.mark.parametrize(("search", "result"), [
("alibaba", "阿里巴巴"), ("xiaomi", "小米"), ("google", "谷歌")
])
def test_search(self, search, result):
self.driver.find_element_by_id(self.home_search_id).click()
self.driver.find_element_by_id(self.search_input_text_id).send_keys(search)
self.driver.find_elements_by_id(self.search_name_id)[0].click()
text = self.driver.find_elements_by_id(self.stockName_id)[0].get_attribute("text")
assert result in text
self.driver.find_element_by_id(self.action_close_id).click() def teardown_class(self):
sleep(5)
self.driver.quit()

  

第一个appium测试用例的更多相关文章

  1. Appium(四):真实机第一个appium程序、模拟器第一个appium程序、查看元素

    1. 真实机第一个appium程序 学完了前面的知识,也将环境搭建好了,接下来我们就正式开始appium的学习了. 在做app自动化的时候,我们肯定是针对某个产品.某个软件进行测试,那么我们一定是先让 ...

  2. appium学习【四】:第一个appium脚本

    #coding=utf-8 import os import HTMLTestRunner import unittest import time import sys from appium imp ...

  3. 一个appium 博客

    http://www.cnblogs.com/tobecrazy/category/699177.html appium Java控制Appium server start/stop 摘要: 相信很多 ...

  4. 第二章 mac上运行第一个appium实例

    一.打开appium客户端工具 1      检查环境是否正常运行: 点击左边第三个图标 这是测试你环境是否都配置成功了 2      执行的过程中,遇到Could not detect Mac OS ...

  5. 测试工具之Jmeter(创建一个简单测试用例)

    前面介绍了如何使用badboy录制jmeter脚本,以及如何导入脚本并进行测试 这里介绍下手动创建测试用例,主要步骤如下: 1.创建线程组 第一次打开Jmeter只有一个测试计划,右键“测试计划”选择 ...

  6. 第一个appium的Demo

    原文来自:一颗糖果  http://www.cnblogs.com/linglingyuese/articles/8418311.html 一.环境搭建 略(后期补) 二.创建一个测试apk包的项目 ...

  7. XMind2TestCase:一个高效测试用例设计的解决方案!

    一.背景 软件测试过程中,最重要.最核心就是测试用例的设计,也是测试童鞋.测试团队日常投入最多时间的工作内容之一. 然而,传统的测试用例设计过程有很多痛点: 1.使用Excel表格进行测试用例设计,虽 ...

  8. Python编写Appium测试用例(1)

    有段时间没有使用python编写测试用例了,很长时间以来,感觉appium这个测试工具确实不错,今天又重新拿起来,分享一下自己学习的一些用例,欢迎大家一起交流.学习! 1.登录客户端 #coding= ...

  9. Appium移动自动化测试-----(六)4.运行第一个Appium脚本

    新建maven空白工程 前置条件:安装eclipse或IntelliJ IDEA,及其maven插件,请自行百度 新建的工程如下: 新建目录apps,并将下载的安装包,拷贝到该目录下 打开POM增加依 ...

随机推荐

  1. Map(映射)

    散列表介绍: 数组和链表都可以是有序的(即存储顺序与取出顺序一致),但这样是有代价的,需要遍历才可以寻找某一特定元素: 而还有另外的一些存储结构:不在意元素的顺序,能够快速的查找元素的数据 其中就有一 ...

  2. API文档注释 Javadoc

    阅读API文档 JDK包结构 JDK包是由sun开发的一组已经实现的类库,.JDK根据提供的功能不同,将类库划分为若干个包,比如用于操作输入输出的  java.io包,java程序语言设计基础类的   ...

  3. Currying 及应用

    Currying,中文多翻译为柯里化,感觉这个音译还没有达到类似 Humor 之于幽默的传神地步,后面直接使用 Currying. 什么是 Currying Currying 是这么一种机制,它将一个 ...

  4. 文件/大文件上传功能实现(JS+PHP)全过程

    文件/大文件上传功能实现(JS+PHP) 参考博文:掘金-橙红年代 前端大文件上传 路漫漫 其修远 PHP + JS 实现大文件分割上传 本文是学习文件上传后的学习总结文章,从无到有实现文件上传功能, ...

  5. 富文编辑器和bs4简单实用

    目录 使用方法 官方网址 图片上传下载实例 菜单栏功能筛选 bs4 导入 提取标签内的文本内容 目录 使用方法 直接给输入框绑定事件即可,注意引入js方式有点不一样,多加编码方式 <script ...

  6. java23种设计模式(一)工厂方法模式

    在说工厂方法模式之前,先了解一下简单工厂模式.工厂方法模式其实是在简单工厂上面做了一些增强. 简单工厂模式:有一个专门的类来生产其他类的实例,生产的这些实例有一个共同父类.这个跟我们的多态有一点像. ...

  7. OpenGL全流程详细解读

    导语 对于开发者来说,学习OpenGL或者其他图形API都不是一件容易的事情.即使是一些对OpenGL有一些经验的开发者,往往也未必对OpenGL有完整.全面的理解.市面上的OpenGL文章往往零碎不 ...

  8. Redis 复制过程详解

    Redis 的复制功能分为同步( sync )和命令传播( command propagate )两个步骤: 同步用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态. 命令传播则用于在主服务 ...

  9. Python基础库之jieba库的使用(第三方中文词汇函数库)

    各位学python的朋友,是否也曾遇到过这样的问题,举个例子如下: “I am proud of my motherland” 如果我们需要提取中间的单词要走如何做? 自然是调用string中的spl ...

  10. python服务端工程师就业面试指导☝☝☝

    python服务端工程师就业面试指导 由Python专业面试官打造的课,少之又少,专业代表着经验,代表着对考察点的通透理解,更代表着对你负责 第1章 Python工程师offer直通车(视频+教辅文档 ...