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的第 ...
随机推荐
- CVE-2020-0668-Windows服务跟踪中的普通特权升级错误
CVE-2020-0668-Windows服务跟踪中的普通特权升级错误 在这里中,我将讨论在Windows Service跟踪中发现的任意文件移动漏洞.从我的测试来看,它影响了从Vista到10的所有 ...
- 前端项目引入Echarts中的dataTool的正确方式
使用echarts画箱线图时调用echarts.dataTool.prepareBoxplotData() 报错:"echarts.dataTool.prepareBoxplotData i ...
- C++中的public、protected和private
访问权限控制 一个类的public的成员变量.成员函数,可以通过类的实例变量进行访问. 一个类的protected的成员变量.成员函数,无法通过类的实例变量进行访问,但是可以通过类的友元函数.友元类进 ...
- Android中使用AlertDialog实现几种不同的对话框
场景 app中常见的对话框. 简单的带确定取消按钮的对话框 带列表的对话框 带单项选择的对话框 带多项选择的对话框 注: 博客: https://blog.csdn.net/badao_liumang ...
- CentOS安装python3环境
CentOS7.4安装python3环境 (Python 3.8.1) (stable version, Dec.18, 2019) # .从官网下载Python - Dec. , [stable v ...
- P1058 立体图
链接:Miku ------------------------------ 蒟蒻在线%lmk,ljx,lpy,yyq大佬们 ------------------------------ Good N ...
- sql server 基本操作
1输入如下命令,即可通过SQL Server命令行启动.停止或暂停的服务. SQL Server命令行如下: 启动SQL ServerNET START MSSQLSERVER 暂停SQL Serve ...
- 【小白视频学Java for循环】3分钟学会Java的for循环,让看懂for循环嵌套再不是难事
目录 一.单个for循环介绍 二.for循环嵌套 听讲时能听懂的for循环为什么一做题就晕菜?一个for循环还勉强能看懂,但为什么一看到双重for循环脑子里就感觉脑子全是浆糊? 如果有上述问题那么就继 ...
- mysql基础(附具体操作代码)
# 注释内容 -- 注释内容 -- 创建数据库 king CREATE DATABASE king; -- 查看当前服务器下有哪些数据库 SHOW DATABASES; SHOW SCHEMAS; - ...
- Couchdb垂直权限绕过到命令执行
0x00couchdb简介 Apache CouchDB是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库".它是一个使用JSON作为存储格式,JavaScript作为查 ...