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知识点的更多相关文章

  1. Appium Android Bootstrap控制源代码的分析AndroidElement

    通过上一篇文章中<Appium Android Bootstrap源代码分析之简单介绍>我们对bootstrap的定义以及其在appium和uiautomator处于一个什么样的位置有了一 ...

  2. Appium Android Bootstrap源码分析之控件AndroidElement

    通过上一篇文章<Appium Android Bootstrap源码分析之简介>我们对bootstrap的定义以及其在appium和uiautomator处于一个什么样的位置有了一个初步的 ...

  3. Appium python自动化测试系列之Android知识讲解(三)

    ​3.1 ADB工具讲解 3.1.1 什么是ADB呢? 我们不去解释官方语言的翻译,给大家说一个通熟易懂的说法,ADB我理解为他就是电脑和手机连接的桥梁.此连接不是充电的连接,大家不要混淆,说他是一个 ...

  4. Appium python自动化测试系列之等待函数如何进行实战(九)

    ​9.1 等待函数的使用 9.1.1 为什么要使用等待函数 我们在做自动化的时候很多时候都不是很顺利,不是因为app的问题,我们的脚本也没问题,但是很多时候都会报错,比如一个页面本来就有id为1的这个 ...

  5. Appium python自动化测试系列之页面滑动原理讲解(十)

    10.1.1 页面滑动原理分析 在页面滑动查找章节我们就讲了滑动的知识点,只是不知道大家是否有认真练习以及去理解,如果你认真练习.理解了那么我相信这一章节的东西不用看也能够完成,下面我们还是简单分析一 ...

  6. appium+Python 启动app(三)登录

    我们根据前面的知识点,用uiautomatorviewer工具来获取我们当前的元素 (注:uiautomatorviewer 是 android sdk 自带的) 知识点:appium的webdriv ...

  7. Appium的入门使用

    ps:有没有人和我一样觉得Appium官方文档写的很烂的, 这官方文档,还不如很多人写的博客详细,而且对于初学的入门者实在是不够友好, 官网:https://github.com/appium/jav ...

  8. Node.js的知识点框架整理

    背景:因为appium是基于Node.js的,所以想看一下Node.js.但是发现很多资料的顺序看起来有点颠倒.然后就一面看资料一面整理了一下大概的知识点框架,希望对自己对别人有用. 本文不包含nod ...

  9. 移动端自动化测试(二)之 Appium常用的API(python)函数介绍

    上一章节已经介绍了Appium的环境搭建,其实只要掌握了Appium的工作原理,前期的准备工作和安装过程是比较简单的.那么当我们搭建好Appium环境后接下来做些什么呢?通常思路是开始appium的第 ...

随机推荐

  1. 杭电-------2048不容易系列之(4)考新郎(C语言)

    /* 思路:有n位新郎,但是又m位新郎会找错,那么有n-m位新郎会找对,而找对的n-m位新郎的找发就是在 n位新郎中随机找n-m位有多少种排列组合公式有n!/(m!*(n-m!)),而另外找错的新郎则 ...

  2. [Contract] Solidity address payable 转换与数组地址

    address payable  -->  address address payable addr1 = msg.sender; address addr2 = addr1; // 隐式转 a ...

  3. Java Lamada

    Collection: ->stream:返回一个以 colleciotn 元素为数据源的数据流. -->map: 入参 Function 对象,将此流中的元素依次作用于传入的 Funct ...

  4. Linux内核的LED设备驱动框架【转】

    /************************************************************************************ *本文为个人学习记录,如有错 ...

  5. 正规式与正规集,DFA与NFA

    词法分析器的设计 词法分析器的功能:输入源程序.输出单词符号 词法分析器的设计:给出程序设计语言的单词规范--单词表, 对照单词表设计识别该语言所有单词的状态转换图, 根据状态转换图编写词法分析程序 ...

  6. Re:连点器

    连点器 介绍 顾名思义,可以连续点的机器. 当然,连续可快可慢:机器意味着不许要人工点击:可以是生活中的机器,也可以是电脑中的程序. 现在,连点器网上一搜一大堆,什么鼠标连点精灵,鼠大侠……不仅有电脑 ...

  7. JAVA系统架构高并发解决方案 分布式缓存 分布式事务解决方案

    JAVA系统架构高并发解决方案 分布式缓存 分布式事务解决方案

  8. 简单的试了试async和await处理异步的方式

    今天无意中就来试了试,感觉这个新的方法还是非常行的通的,接下来我们上代码 这段代码想都不用想输出顺序肯定是//null null 233,当然出现这个问题还是因为它是同步,接下来我们就进行异步方式来处 ...

  9. Ant Design 方法默认传值,加上其他参数

    前端填坑之路Ant Design里面的一些触发方法,如OnChange,OnSelect等等,当你触发时,该时间会自动传一些值给方法. 这是Select里面的onChange调用,在红框中,他会自动传 ...

  10. 《手把手教你构建自己的 Linux 系统》学习笔记(2)

    Linux 系统定制原理 虚拟根目录 我们的目标是为了完成目标系统(也就是我们要做的系统),他是一个可以独立运行的系统,不依赖雨主系统和临时系统,根据 Linux 系统的特点它需要存放在根目录下面,但 ...