appium知识点
1 appium元素获取技巧
# 就是页面滑动
driver.swipe(x1, y1, x1, y2, t)
# 拿到所有跟元素有关的标签,其实是个列表
driver.find_elements_by_class_name('android.widget.TextView')
# 按照下标拿数据并点击
driver.find_elements_by_class_name('android.widget.TextView')[0].click()
#层及定位
element = driver.
find_element_by_class_name('android.support.v4.view.ViewPager')
print(element)
element = element.find_element_by_class_name('android.view.View')
print(element)
element = element.find_element_by_class_name('android.widget.TextView')
element.click()
#注 当在一个层级中定位多个元素的时候,可以使用下标来精准定位
# uiautomator进行定位,直接看ui界面的元素
def into_by_uiautomator():
driver.find_element_by_android_uiautomator('new UiSelector().text("立刻进入体验")').click()
# 清空输入框中的数据
driver.find_element_by_android_uiautomator('new UiSelector().text("18513199586")').clear()
# 向输入框中输入数据
driver.find_element_by_android_uiautomator('new UiSelector().text("手机号/邮箱")').send_keys('')
#注括号中的text可以替换成index,resource-id,class-name
#x_path
# 查找整个目录下面包含这个文本的标签
driver.find_element_by_xpath('//*[contains(@text,"登录")]').click()
# 通过子节点
driver.find_element_by_xpath('//android.widget.TextView[@resource-id="cn.com.open.mooc:id/login_lable"]/../preceding-sibling::android.widget.RelativeLayout').send_keys('')
#tost
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
def get_tost():
time.sleep(2)
driver.find_element_by_id('cn.com.open.mooc:id/account_edit').send_keys('')
tost_element = ("xpath","//*[contains(@text,'请输入密码')]")
WebDriverWait(driver,10,0.1).until(EC.presence_of_element_located(tost_element))
2 python读取配置文件
import os
from configparser import ConfigParser
read_ini = ConfigParser()
# 获取文件配置文件路径
print(os.path.join(os.path.join(os.path.dirname(os.getcwd()),'config'),'LocalElement.ini'))
# 读配置文件
read_ini.read(os.path.join(os.path.join(os.path.dirname(os.getcwd()), 'config'), 'LocalElement.ini'))
# 读出数据
print(read_ini.get('login_element', 'username'))
3 运行appium并打印日志
appium -p {appium_port_list[i]} -bp {bootstrap_port_list[i]} -U {device_list[i]} --no-reset --session-override --log D:\ouyang\AppiumChezhudianping/log/test02.log
appium知识点的更多相关文章
- Appium Android Bootstrap控制源代码的分析AndroidElement
通过上一篇文章中<Appium Android Bootstrap源代码分析之简单介绍>我们对bootstrap的定义以及其在appium和uiautomator处于一个什么样的位置有了一 ...
- Appium Android Bootstrap源码分析之控件AndroidElement
通过上一篇文章<Appium Android Bootstrap源码分析之简介>我们对bootstrap的定义以及其在appium和uiautomator处于一个什么样的位置有了一个初步的 ...
- Appium python自动化测试系列之Android知识讲解(三)
3.1 ADB工具讲解 3.1.1 什么是ADB呢? 我们不去解释官方语言的翻译,给大家说一个通熟易懂的说法,ADB我理解为他就是电脑和手机连接的桥梁.此连接不是充电的连接,大家不要混淆,说他是一个 ...
- Appium python自动化测试系列之等待函数如何进行实战(九)
9.1 等待函数的使用 9.1.1 为什么要使用等待函数 我们在做自动化的时候很多时候都不是很顺利,不是因为app的问题,我们的脚本也没问题,但是很多时候都会报错,比如一个页面本来就有id为1的这个 ...
- Appium python自动化测试系列之页面滑动原理讲解(十)
10.1.1 页面滑动原理分析 在页面滑动查找章节我们就讲了滑动的知识点,只是不知道大家是否有认真练习以及去理解,如果你认真练习.理解了那么我相信这一章节的东西不用看也能够完成,下面我们还是简单分析一 ...
- appium+Python 启动app(三)登录
我们根据前面的知识点,用uiautomatorviewer工具来获取我们当前的元素 (注:uiautomatorviewer 是 android sdk 自带的) 知识点:appium的webdriv ...
- Appium的入门使用
ps:有没有人和我一样觉得Appium官方文档写的很烂的, 这官方文档,还不如很多人写的博客详细,而且对于初学的入门者实在是不够友好, 官网:https://github.com/appium/jav ...
- Node.js的知识点框架整理
背景:因为appium是基于Node.js的,所以想看一下Node.js.但是发现很多资料的顺序看起来有点颠倒.然后就一面看资料一面整理了一下大概的知识点框架,希望对自己对别人有用. 本文不包含nod ...
- 移动端自动化测试(二)之 Appium常用的API(python)函数介绍
上一章节已经介绍了Appium的环境搭建,其实只要掌握了Appium的工作原理,前期的准备工作和安装过程是比较简单的.那么当我们搭建好Appium环境后接下来做些什么呢?通常思路是开始appium的第 ...
随机推荐
- 如何在 Linux 中找出 CPU 占用高的进程
1) 怎样使用 top 命令找出 Linux 中 CPU 占用高的进程 在所有监控 Linux 系统性能的工具中,Linux 的 top 命令是最好的也是最知名的一个.top 命令提供了 Linux ...
- .NET面试题整理(持续更新)
1.已知值类型保存在线程栈中,引用类型保存在堆中 struct Point{ public int x,y; } public sealed class program{ public static ...
- THINKPHP-RCE-POC
thinkphp-RCE-POC 官方公告: 1.https://blog.thinkphp.cn/869075 2.https://blog.thinkphp.cn/910675 POC: thin ...
- Basic Auth攻击
1.Basic Auth认证简介 Basic身份认证,是HTTP 1.0中引入的认证方案之一.虽然方案比较古老,同时存在安全缺陷,但由于实现简单,至今仍有不少网站在使用它. 例如Apche Tomca ...
- 在debian10启动器中添加自定义应用
首先要添加一个desktop类型的文件,搜索一下即可 若将desktop文件放在/usr/share/applicatios/中,需要执行update-desktop-database使新添加的应用生 ...
- 实用,Windows后台守护进程iNeuDaemon发布。Linux操作系统下使用使用supervisor
目 录 1. 概述... 1 2. iNeuDaemon部署... 2 3. iNeuDaemon配置监控服务项... 3 4. 应用效果... 3 ...
- [dubbo 源码之 ]1. 服务提供方如何发布服务
服务发布 启动流程 1.ServiceConfig#export 服务提供方在启动部署时,dubbo会调用ServiceConfig#export来激活服务发布流程,如下所示: Java API: ` ...
- POJ 1753 Flip Game 暴力 深搜
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 59468 Accepted: 24750 Descr ...
- Java基础之四、字符和字符串 异常处理
字符和字符串是最常用的信息 1:char表示字符 字符常量-两个单引号中间的字符表示字符常量'A' 2:字符串和String 字符串常量-双引号中间的字符序列"Java" 字符串常 ...
- Node中使用MongoDB
简介 MongoDB 中文文档 MongoDB是一个介于关系数据库和非关系数据库(nosql)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. Mongoose 在Node中可以使用 Mo ...