2014-10-29 104 views
1

我想为HTML5画布应用程序运行自动化测试和基准测试。我已经使用python-unittest和ChromeDriver建立了Selenium(尽管我愿意接受其他选择)。我可以使用Selenium Python在画布上绘图吗?

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

有没有什么办法可以在画布上实现自动绘图测试?

+0

也许PyUserInput可以帮助:https://pypi.python.org/pypi/PyUserInput/0.1.9有了它你可以控制鼠标移动/点击 – Ryan 2014-10-29 18:01:59

回答

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是我的硒的webdriver)