我可以使用Selenium Python在画布上绘图吗?

时间:2014-10-29 18:00:07

标签: python selenium canvas selenium-webdriver python-unittest

我正在尝试为HTML5画布应用程序运行自动化测试和基准测试。我已经使用python-unittest和ChromeDriver建立了Selenium(虽然我可以选择替代方案)。

画布应用程序是一个白板,通过单击鼠标并在画布上拖动来绘制线条。如何使用Selenium自动绘制简单的形状?我浏览了python-selenium API并且唯一的鼠标移动测试选项是ActionChains,但这些都是基于idclass将鼠标移动到元素。我还没有看到基于画布上坐标自动化鼠标移动的方法。

有没有办法在画布上实现绘图的自动化测试?

2 个答案:

答案 0 :(得分:2)

还有click_and_hold功能。这对我有用:

from selenium.webdriver.common.action_chains import ActionChains

canvas = self.driver.find_element_by_id("myCanvas")
drawing = ActionChains(self.driver)\
    .click_and_hold(canvas)\
    .move_by_offset(-10, -15)\
    .move_by_offset(20, 32)\
    .move_by_offset(10, 25)\
    .release()
drawing.perform()

(self.driver是我的Selenium webdriver。)

答案 1 :(得分:1)

在问我的问题之前,也许我应该阅读更多的文档。可以使用几个ActionChains来进行必要的测试,例如: