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. 一步步搭建jumpserver

    测试推荐环境 CPU: 64位双核处理器 内存: 4G DDR3 数据库:mysql 版本大于等于 5.6 mariadb 版本大于等于 5.5.6 环境 系统: CentOS 7 IP: 192.1 ...

  2. [Linux]LVM扩展卷

    LVM LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活 ...

  3. Microsoft.EntityFrameworkCore.Tools 相关命令

    一.前言 Entity Framework(后面简称EF)作为微软家的ORM,自然而然从.NET Framework延续到了.NET Core. 二.程序包管理器控制台 为了能够在控制台中使用命令行来 ...

  4. Android事件分发与责任链模式

    一.责任链模式 责任链模式是一种行为模式,为请求创建一个接收者的对象链.这样就避免,一个请求链接多个接收者的情况.进行外部解耦.类似于单向链表结构. 优点: 1. 降低耦合度.它将请求的发送者和接收者 ...

  5. 根据js轮播图原理写出合理的结构与样式、并实现js交互效果

    在JS中,能用 . 的地方一般都可以用 [ ] 取代 index.html <!DOCTYPE html> <html lang="en"> <hea ...

  6. DolphinScheduler源码分析之任务日志

    DolphinScheduler源码分析之任务日志 任务日志打印在调度系统中算是一个比较重要的功能,下面就简要分析一下其打印的逻辑和前端页面查询的流程. AbstractTask 所有的任务都会继承A ...

  7. 指数ETF基金的组合分析方法初探

    本文在Creative Commons许可证下发布 试想一下,大多数基金“推荐”的配置策略都假设某种股票/债券组合.如果我们想寻求成本最小收益最高的组合(以yahoo finance上的数据来分析,因 ...

  8. Go String

    在 Go 语言中, 字符串是基础数据类型之一, 关键字为 string. 变量声明 字符串变量的声明如下: // 声明一个字符串类型的变量 s, 未赋予初始值时默认为零值"" va ...

  9. C# Winform初体验

    设计一个简单的登录窗口,要求输入用户名:小金,密码:123456时候点登录能正确转到另一个窗口. 1.建立窗体应用. 2.这里创建一个login和一个NewForm的窗体. 3.在login的窗体拖拉 ...

  10. C# WPF之Material Design自定义颜色

    微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. C# WPF之Material Design自定义颜色 阅读导航 本文背景 代码实现 本文参考 ...