测试画布图纸与量角器
Test canvas drawings with Protractor
是否有方法测试是否使用量角器在画布上制作绘图?
。我根据用户点击画了一个矩形:
var shape = new createjs.Shape();
shape.graphics.beginStroke("black");
shape.graphics.drawRect(crd.x, crd.y, crd.width, crd.height);
stage.addChild(shape)
stage.update()
现在我想做一个规范来测试一个矩形是否被绘制在指定的坐标上,作为一个附加,来测试它的边框是否为黑色。
是否可以使用Protractor/WebDriverJS API?
我们在protractor中测试画布的方法如下:
我们设置了一个"众所周知的"base64图像字符串,它代表了我们在画布上绘制后想要的图像。然后我们使用浏览器。获取画布的dataUrl。然后比较字符串和字符串,这就告诉我们绘图是否正确。
var base64ImageString = "data:image/png;base64,iVBORw0KGgoAA...snipped for brevity";
describe("The Canvas", function () {
browser.get('/#'));
/*
.
do your drawing
.
*/
it("should contain the right drawings", function(){
browser.executeScript("return document.getElementsByTagName('canvas')[0].toDataURL()").then(function (result) {
expect(result).toBe(base64ImageString);
});
});
});
非常适合我们。我们正在尝试获得uint8clampearray,看看它是否更容易-但到目前为止,这个方法是伟大的,除了一个微妙的问题。
根据我们的经验,从toDataUrl方法返回的图像字符串只表示画布的可见区域—而不是整个画布。这对我们来说已经足够好了,但你的情况可能会有所不同。这也是我们尝试使用字节数组的原因,因为它允许您指定画布的特定X X Y区域。这是可能的,但是您必须创建一个具有所需输出的虚拟画布。您可以比较来自dummyCanvas的图像数据和来自浏览器对象画布的图像数据。它看起来应该像这样:
describe('Canvas Test', function() {
it('should have a title', function() {
browser.get('http://whenthetestShouldrun.com');
var dummyCanvas= document.createElement('canvas');
//some code to edit the canvas to what you want
expect(browser.By.id('canvas').getImageData(imageX, imageY, imageWidth, imageHeight)).toEqual(dummyCanvas.getImageData(imageX, imageY, imageWidth, imageHeight));
});
});
相关文章:
- 使用量角器的当前url单元测试的getTitle
- 量角器:读取表格内容
- javascript、量角器和类的问题
- 使用Angular js-量角器e2e测试上传文件
- 在量角器中创建一个.txt错误输出文件是手动的,而不是控制台错误
- 复杂量角器选择器
- 点击图标是't在量角器上工作
- 我可以访问量角器配置文件中的参数吗
- 量角器使用ElementArrayFinder执行脚本怪异
- 使用PhantomJS的量角器错误
- 如何使用量角器获取当前url
- 无法从量角器测试中元素的值返回字符串
- 以字符串形式读取量角器测试中的更新输入
- Telerik剑道ui图纸导出PDF发送到服务器
- 我如何选择/点击一个带有for=“”的元素"属性[量角器]
- 量角器-如何在量角器中设置默认的打字语言
- 如何将Node.js与卡布奇诺一起使用
- 是否可以从javascript文件中将量角器作为模块运行
- 需要在量角器中找到使用ng中继器的li元素的数量
- 测试画布图纸与量角器