使用Selenium与Canvas交互

che*_*dgt 6 html testing selenium automation canvas

我已经对此做了一些阅读,但未能找到具体的东西.我有一个需要与Selenium交互的画布对象.但是我们都知道画布对象就像一个封闭的盒子.我读到你可以在JS代码中添加'hooks'来绘制画布,以允许Selenium捕获这些钩子并使用某些东西.

但我不确定我怎么能这样做.有没有人愿意分享任何经验或小例子?

Shr*_*ree 7

我也在研究同样的问题,在搜索了一段时间后,我了解到 Selenium 访问画布元素。但它无法访问它的内部元素/子元素。因为 selenium 使用了 DOM 模型,而 canvas 的子元素在 DOM 中是不可见的。在查看了此处提到的一个示例后,我们可以使用坐标与画布进行交互。但这很荒谬,大多数时候我们会动态地绘制元素,我们如何才能获得perticular shape的坐标。如果你有形状的坐标,你可以使用上面的链接玩它们。

  • 是的,Canvas 对象被证明是一个真正的痛苦。我最终整理了一个适用于存储图像的屏幕验证设置。您可以针对屏幕的特定部分(画布)进行验证 这在实践中似乎工作得很好,只要您的测试应用程序没有经历太多的图形更改 (2认同)