【问题标题】:Can I use Selenium Python to draw on a canvas?我可以使用 Selenium Python 在画布上绘图吗?
【发布时间】:2014-12-25 13:56:20
【问题描述】:

我正在尝试为 HTML5 画布应用程序运行自动化测试和基准测试。我已经使用 python-unittest 和 ChromeDriver 设置了 Selenium(尽管我对替代方案持开放态度)。

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

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

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    也许我应该在提问之前阅读更多文档。有几个ActionChains 可用于硬塞所需的测试,例如:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 2022-11-19
      • 1970-01-01
      • 2017-03-15
      • 1970-01-01
      • 2011-12-31
      相关资源
      最近更新 更多