首页 > 解决方案 > 如何使用 Selenium 和 OpenCV 自动测试 Canvas 游戏?

问题描述

我想要部分自动化基于 Canvas 的应用程序的测试。实时跟踪画布并通过坐标单击选定的对象。应通过比较对象和画布的图片来接收对象的坐标。谷歌没有提供任何关于任何类似问题的有用信息。(在我的情况下,比较像 Sikuli 中的图片并不是很有用)。任何人都可以帮助我从哪里以及如何开始?另外,我想用javascript来做。

标签: javascriptseleniumopencvhtml5-canvas

解决方案


您可以将 Selenium 与 OpenCV 结合使用,如下所述:

http://hacklabos.org/2019/02/python-html5-canvas-game-web-automation-example-using-selenium-and-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/


推荐阅读