Macaca的Python的api整理
整理了下Macaca的API,做成思维脑图,方便阅览。
WebDriver
安装
pip install wd
git clone https://github.com/macacajs/wd.py.git
初始化WebDriver
driver.init()
停止WebDriver
driver.quit()
附加到现有会话
driver.attach('012-345-678-9')
方法
driver.get('https://www.google.com')
driver.refresh()
title = driver.title
查找元素
driver.element_by_id('login')
driver.element_by_xpath('//*[@id="finding-elements-to-interact"]/table[4]')
driver.element_by_link_text('macaca')
driver.element_by_partial_link_text('maca')
driver.element_by_tag_name('input')
driver.element_by_class_name('btn')
driver.element_by_css_selector('.btn')
driver.element_by_id_if_exists('login')
是否存在
存在 true
不存在 false
driver.element_by_id_or_none('login')
是否存在
存在 返回元素
不存在 none
driver.wait_for_element_by_id('login')
等待10s ,每秒尝试一次,如潮水,报错
WebElement方法
from macaca import WebElement
WebElement的实例方法主要与action元素相关,例如单击元素,获取标签名称或获取元素的innerText。
web_element = driver.element_by_id('login')
print(type(web_element) == WebElement) # True
web_element.click()
tag_name = web_element.tag_name
text = web_element.text
web_element.element_by_id('ss')
WebDriver上的所有元素方法都可以在WebElement上使用,这意味着可以从当前Web元素中查找元素
按键
web_element.send_keys('123456')
driver.send_keys(web_element, '123456')
特殊键
from macaca import keys
print(keys.ENTER)
截图
base64_str = driver.take_screenshot()
Return the base64 encoded string of the screenshot.
driver.save_screenshot('./screen.png')
Save screenshot to the given path
driver.save_screenshot('/etc/screen.png', True)
权限不允许加 True
切换上下文
对于移动测试,我们将需要在Native和Webview之间切换上下文
ctxs = driver.contexts
print(ctxs) # ['NATIVE', 'WEBVIEW_1', 'WEBVIEW_2']
driver.context = 'WEBVIEW_1'
# Switch to `WEBVIEW_1`
执行JavaScript代码段
script = 'return document.querySelector(".btn").tagName === arguments[0]'
args = ['div']
result = driver.execute_script(script, *args)
截图处理
openCV 图片识别
sikuli 图形脚本语言
tesseract 文字识别
Image Diff基于像素点对比的图像 Diff
多浏览器支持
selenium-standalone install --drivers.firefox.baseURL=http://npm.taobao.org/mirrors/geckodriver --baseURL=http://npm.taobao.org/mirrors/selenium --drivers.chrome.baseURL=http://npm.taobao.org/mirrors/chromedriver --drivers.ie.baseURL=http://npm.taobao.org/mirrors/selenium
selenium-standalone
通过在本机运行 selenium-standalone\n 实现驱动桌面端浏览器
私有云部署
F2ETest
Macaca的Python的api整理的更多相关文章
- 第二弹:超全Python学习资源整理(进阶系列)
造一个草原要一株三叶草加一只蜜蜂.一株三叶草,一只蜂,再加一个梦.要是蜜蜂少,光靠梦也行. - 狄金森 "成为编程大牛要一门好语言加一点点天分.一门好语言,一点点天分,再加一份坚持.要是天分 ...
- 花了三个月终于把所有的 Python 库全部整理了!可以说很全面了
库名称简介 Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主要用于在终端或浏览器端构建格式 ...
- Python全部库整理
库名称简介 Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主要用于在终端或浏览器端构建格式 ...
- [转载]花了半个月,终于把Python库全部整理出来了,非常全面
库名称简介 Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构 ...
- 如何用 Python 和 API 收集与分析网络数据?
摘自 https://www.jianshu.com/p/d52020f0c247 本文以一款阿里云市场历史天气查询产品为例,为你逐步介绍如何用 Python 调用 API 收集.分析与可视化数据.希 ...
- canvas学习之API整理笔记(二)
前面我整理过一篇文章canvas学习之API整理笔记(一),从这篇文章我们已经可以基本了解到常用绘图的API.简单的变换和动画.而本篇文章的主要内容包括高级动画.像素操作.性能优化等知识点,讲解每个知 ...
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- !!对python列表学习整理列表及数组详细介绍
1.Python的数组分三种类型:(详细见 http://blog.sina.com.cn/s/blog_6b783cbd0100q2ba.html) (1) list 普通的链表,初始化后可以通过特 ...
- HTML5 <Audio/>标签Api整理(二)
1.实例2: 相对较完整 Html代码: <style> #volumeSlider .slider-selection { background:#bababa; } </styl ...
随机推荐
- ISC2016训练赛 phrackCTF--Classical CrackMe
测试文件:https://static2.ichunqiu.com/icq/resources/fileupload/phrackCTF/REVERSE/CrackMe.rar 1.准备 获得信息 3 ...
- python学习笔记(12):高级面向对象
一.__slots__和property 1.__slots__魔术函数动态的添加方法和属性 2.直接暴露属性的局限性 3.使用get/set方法 4.利用@property简化get/set方法 5 ...
- Google authenticator 谷歌身份验证,实现动态口令
Google authenticator 谷歌身份验证,实现动态口令 google authenticator php 服务端 使用PHP类 require_once '../PHPGangsta/G ...
- JDK 8 中Stream流中的去重的方法
JDK 8 中Stream流中去重的方法 1.简单的去重,可以使用distinct()方法去重,该方法是通过比较equals和hashcode值去去重, 2.复杂的去重, 例如,在一个JavaBean ...
- 【学习】004 java并发包
并发包[jdk1.7] 同步容器类 Vector与ArrayList区别 1.ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问.数组的缺点是每个元素之间不 ...
- [python 学习] random
1.random() 生成一个随机浮点数 import random # x 属于 [0,1) x = random.random() print x 2.uniform() 生成制定范围内的随机浮点 ...
- SSM三大框架整合梳理
整合步骤 0.搭建动态web项目 1.需要的jar包 spring(包括springmvc) mybatis相关jar包 mybatis与spring的整合包(个人建议尽量使用高版本的,避免出现一些奇 ...
- UI自动化前置代码
一.前置代码: #导入包selenium from selenium import webdriverimport time#创键一个火狐对象driver=webdriver.Firefox()#防问 ...
- Flink 在人工智能领域的应用实践
人工智能是未来十年最重要的技术革命与驱动力,在各行各业产生着日益重要的作用,它与大数据的发展相辅相成,不仅推动人类社会迈入更智慧的世界,也为数据的应用带来无可估量的价值. 11 月 28 - 30 日 ...
- 20180907-Java Applet基础
Java Applet基础 applet是一种Java程序.它一般运行在支持Java的Web浏览器内.因为它有完整的Java API支持,所以applet是一个全功能的Java应用程序. 如下所示是独 ...