javascript - 如何使用 Selenium 和 OpenCV 自动测试 Canvas 游戏?
问题描述
我想要部分自动化基于 Canvas 的应用程序的测试。实时跟踪画布并通过坐标单击选定的对象。应通过比较对象和画布的图片来接收对象的坐标。谷歌没有提供任何关于任何类似问题的有用信息。(在我的情况下,比较像 Sikuli 中的图片并不是很有用)。任何人都可以帮助我从哪里以及如何开始?另外,我想用javascript来做。
解决方案
您可以将 Selenium 与 OpenCV 结合使用,如下所述:
导入示例:
driver = webdriver.Chrome("./chromedriver")
driver.get("http://www.tripletsandus.com/80s/80s_games/html5_galaga.htm")
def get_driver_image(driver):
canvas_base64 = driver.execute_script("return arguments[0].toDataURL('image/png').substring(21);", a)
cap = base64.b64decode(canvas_base64)
global image
global gray_image
image = cv2.imdecode(np.frombuffer(cap, np.uint8), 1)
之后,您可以使用 OpenCV 变魔术,例如:
https://www.pyimagesearch.com/2016/02/15/determining-object-color-with-opencv/
推荐阅读
- cmake - 如何在模块模式下为 find_package 设置 Find*.cmake?
- haskell - 学习 Haskell 中“:?:”运算符的含义
- ruby - 更改多维哈希值,它仍然相等
- c++ - 我们可以使用命名空间实现封装吗?
- arrays - 如何在 Google 表格中过滤或查询使用 {} 制作的数组
- twilio - 如何获取 Twilio Studio 交互日志,
- latex - 有没有办法在乳胶中将方程的一部分居中对齐?
- alexa - 如果没有先调用另一个意图,如何防止意图触发
- react-redux - react-admin - 重定向后忘记列表过滤器
- google-api - Google Calendar API - 超过 403 用户速率限制