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

drs*_*drs 3 python selenium canvas selenium-webdriver python-unittest

我正在尝试为 HTML5 画布应用程序运行自动化测试和基准测试。我已经使用 python-unittest 和 ChromeDriver 设置了 Selenium(尽管我愿意接受其他选择)。

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

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

小智 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()
Run Code Online (Sandbox Code Playgroud)

(其中 self.driver 是我的 Selenium webdriver。)