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