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

原文地址:https://www.cnblogs.com/breakcircle/p/11630034.html

时间: 2024-10-01 19:56:30

Macaca的Python的api整理的相关文章

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

摘自 https://www.jianshu.com/p/d52020f0c247 本文以一款阿里云市场历史天气查询产品为例,为你逐步介绍如何用 Python 调用 API 收集.分析与可视化数据.希望你举一反三,轻松应对今后的 API 数据收集与分析任务. 市场 我们尝试的,是他们找到的阿里云市场的一款 API 产品,提供天气数据. 它来自于易源数据,链接在 https://market.aliyun.com/products/57096001/cmapi010812.html?spm=517

转:花了三个月终于把所有的Python库全部整理了!

链接:https://www.jianshu.com/p/2642f9d28f34 库名称简介 Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主要用于在终端或浏览器端构建格式化的输出. difflib,[Python]标准库,计算文本差异 Levenshtein,快速计算字符串相似度. fuzzywuzzy,字符串模糊匹配. esmre,正则表达式的加速器. shortuuid,一组简洁

花了半个月,终于把Python库全部整理出来了,非常全面

库名称简介 Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构建格式化的输出. difflib,[Python]标准库,计算文本差异Levenshtein,快速计算字符串相似度. fuzzywuzzy 字符串模糊匹配. esmre 正则表达式的加速器. shortuuid 一组简洁URL/UUID函数库. ftfy,Unicode文本工具7 unidecode

Python回顾与整理5:映像和集体类型

0.说明 依然是按照前面介绍的几种序列类型的思路来总结字映像类型和集合类型,即先做一个介绍,再讨论可用操作符.工厂函数.内建函数和方法. 1.映射类型:字典 映射类型被称做哈希表,而Python中的字典对象就是哈希类型,即它是按照这样的方式来存储数据:(哈希表的算法)是获取键,对键执行一个叫做哈希函数的操作,并根据计算的结果,选择在数据结构的某个地址中来存储对象的值.任何一个值存储的地址取决于它的键,正因为这种随意性,哈希表中的值是没有顺序的,所以Python中的字典对象中的元素也是无序的. 下

python day04 学习整理

python day4 学习整理 1.装饰器 #什么是装饰器#器是指函数#装饰就是修饰,意思是为其他函数添加新功能#装饰器定义:本质就是函数,定义是为其他函数添加新功能 ##装饰器需要遵循的原则#1,不修改被装饰函数的源代码(开放封闭原则)#2,为被装饰函数添加新功能后,不修改被装饰函数的调用方式 #实现装饰器的知识储备#装饰器 = 高阶函数 + 函数嵌套 + 闭包 # def foo(x):# def foo1(x):# return x# return foo1## print(foo(1)

Python回顾与整理4:序列(字符串/列表/元组)

0.说明 序列其实是Python的某几类数据类型的统称,如字符串,列表和元组,将它们统称为序列,是因为:它们的成员有序排列,并且可以通过下标偏移量访问到它的一个或者几个成员. 总结的思路为:先介绍适用于所有序列类型的操作符和内建函数,然后再分别对这几种序列类型进行介绍. 1.序列 序列类型都有相同的访问模式:它的每一个元素都可以通过指定一个偏移量的方式得到,多个元素通过切片操作的方式得到.而在Python序列中,偏移量的规则如下(假设序列长度为N): (1)标准类型操作符 在<Python回顾与

Python回顾与整理3:数字

Python回顾与整理3:数字 0.说明 数字用的次数是否多主要是看需求,如果是做自动化运维平台开发,比如做一个自动监控的系统,那么你肯定需要收集一定量的数据,然后再对这些数据做一定的处理,那么这时候,你就一定需要用得上数字的.当然,我这里所说的要不要用数字,指的是,你是否需要对你的数据做一定的处理. 1.数字简介 数字是不可更改类型,也就是说变更数字的值会生成新的对象. (1)创建数值对象并用其赋值(数字对象) >>> anInt = 1 >>> aComplex =

Python面试题整理-更新中

几个链接: 编程零基础应当如何开始学习 Python ? - 路人甲的回答 网易云课堂上有哪些值得推荐的 Python 教程? - 路人甲的回答 怎么用最短时间高效而踏实地学习 Python? - 路人甲的回答 如何学习Python爬虫[入门篇] - 学习编程 - 知乎专栏 Python常用库整理 - 学习编程 - 知乎专栏 学好Python的11个优秀资源 - 学习编程 - 知乎专栏 在开头依然推荐一个Python面试题整理比较好的网站:GitHub : 关于Python的面试题.同样推荐几道

Bootstrap FileInput 上传 中文 API 整理

Bootstrap FileInput 上传  中文 API 整理 上传插件有很多 但是公司用的就是 Bootstrap FileInput 自己就看了看  会用就行 自己都不知道每个值是干嘛用的就问大佬 总结一下 1 一. 引入文件 2 <link href="../css/bootstrap.min.css"rel="stylesheet"> 3 <link href="../css/fileinput.css" media