我能使用 Selenium Python 在画布上绘制吗?

3
我正在尝试运行HTML5画布应用程序的自动化测试和基准测试。我使用了Python单元测试和ChromeDriver来设置Selenium(虽然我也可以考虑其他替代方案)。
该画布应用程序是一个白板,可以通过在画布上单击并拖动鼠标绘制线条。如何使用Selenium自动绘制简单形状?我已经浏览了Python-Selenium API,发现唯一的鼠标移动测试选项是通过“ActionChains”,但这些选项都是根据元素的“id”或“class”移动鼠标。我还没有找到一种基于画布坐标自动化鼠标移动的方法。
是否有任何方法可以实现在画布上进行自动化绘图的测试?

也许 PyUserInput 可以帮助你:https://pypi.python.org/pypi/PyUserInput/0.1.9。使用它,你可以控制鼠标的移动和点击。 - Ryan
2个回答

5

还有一个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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接