整理了下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整理的更多相关文章

  1. 第二弹:超全Python学习资源整理(进阶系列)

    造一个草原要一株三叶草加一只蜜蜂.一株三叶草,一只蜂,再加一个梦.要是蜜蜂少,光靠梦也行. - 狄金森 "成为编程大牛要一门好语言加一点点天分.一门好语言,一点点天分,再加一份坚持.要是天分 ...

  2. 花了三个月终于把所有的 Python 库全部整理了!可以说很全面了

    库名称简介 Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主要用于在终端或浏览器端构建格式 ...

  3. Python全部库整理

    库名称简介 Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主要用于在终端或浏览器端构建格式 ...

  4. [转载]花了半个月,终于把Python库全部整理出来了,非常全面

    库名称简介 Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构 ...

  5. 如何用 Python 和 API 收集与分析网络数据?

    摘自 https://www.jianshu.com/p/d52020f0c247 本文以一款阿里云市场历史天气查询产品为例,为你逐步介绍如何用 Python 调用 API 收集.分析与可视化数据.希 ...

  6. canvas学习之API整理笔记(二)

    前面我整理过一篇文章canvas学习之API整理笔记(一),从这篇文章我们已经可以基本了解到常用绘图的API.简单的变换和动画.而本篇文章的主要内容包括高级动画.像素操作.性能优化等知识点,讲解每个知 ...

  7. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  8. !!对python列表学习整理列表及数组详细介绍

    1.Python的数组分三种类型:(详细见 http://blog.sina.com.cn/s/blog_6b783cbd0100q2ba.html) (1) list 普通的链表,初始化后可以通过特 ...

  9. HTML5 <Audio/>标签Api整理(二)

    1.实例2: 相对较完整 Html代码: <style> #volumeSlider .slider-selection { background:#bababa; } </styl ...

随机推荐

  1. .NET的优点(转载)

    一:什么是.NET?它包括什么? .Net是为简化在第三代因特网的高分布式环境下的应用程序开发,基于开放互联网标准和协议之上,实现异质语言和平台高度交互性,而构建的新一代计算和通信平台. .Net主要 ...

  2. 【JAVA】Java 异常中e的getMessage()和toString()方法的异同

    参考链接 CSDN: Java 异常中e的getMessage()和toString()方法的异同 示例代码1: public class TestInfo {     private static ...

  3. vs code 同步

    vs code 同步需要在github上配置好gist id, 将gist id添加至setting.json中, 然后再在localsetting中设置access token,  gist id ...

  4. JavaScriptDOM对象和jQuery对象的互相转换

    前言: 首先我们思考能不能直接在jQuery对象上调用原生DOM对象的方法或者直接在原生DOM对象调用jQuery对象呢?答案是否定的,我们看下把body背景色变为红色的代码: $("bod ...

  5. lLinux的常用命令

    命令基本格式: 命令提示符:[root@localhost ~]#      root 代表当前的登录用户(linux当中管理员账号是root)      @ 无实际意义      localhost ...

  6. localeCompare按首字母排序汉字

    sort() 方法用于对数组的元素进行排序. 如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字.比较函数应该具有两个参数 a 和 b,其 ...

  7. Tomcat部署虚拟主机

    使用Tomcat部署加密虚拟主机,实现: a.使用www.a.com域名访问的页面根路径为/usr/local/tomcat/a/base b.使用www.b.com域名访问的页面根路径为/usr/l ...

  8. Nginx优化总结

    目录 Nginx性能优化概述 一. 压力测试工具实战 二.了解影响性能指标 三.系统性能优化 四.静态资源优化 Nginx性能优化概述 基于Nginx性能优化,那么在性能优化这一章,我们将分为如下几个 ...

  9. 读书笔记三、pandas之重新索引

  10. MongoDb学习 自定义配置mongodb连接

    最近研究了mongodb获取本地连接属性的方案,场景就是mongodb的连接地址不在配置文件中配置,而是在代码中写好,代码中是从本地文件读取地址. public class MongoConfig { ...