📅  最后修改于: 2023-12-03 14:56:18.225000             🧑  作者: Mango
Protractor是一个用于E2E(端到端)测试AngularJS应用程序的浏览器自动化框架。Protractor是基于Selenium的API编写的,因此它基本上是Selenium WebDriver的一个包装器。在本文中,我们将介绍如何使用Protractor在线测验来测量角度。
在继续之前,您需要安装以下内容:
Protractor提供了测量角度的支持,只要您在代码中定义了一个名为angleMatchers
的对象。这个对象包含多个函数,它们分别用于比较角度,以便您可以使用这些函数来测量角度。
var angleMatchers = {
toBeLessThan: function() {},
toBeGreaterThan: function() {},
toBeCloseTo: function() {},
toBeApproximately: function() {}
};
例如,如果你想测量一个角度是否小于另一个角度,你可以使用toBeLessThan()
函数。同样,如果你想测量一个角度是否接近于另一个角度,你可以使用toBeCloseTo()
函数。
var angleMatchers = {
toBeLessThan: function (util, customEqualityTesters) {
return {
compare: function (actual, expected) {
var deg1 = helpers.angleToDegrees(actual),
deg2 = helpers.angleToDegrees(expected);
return {
pass: deg1 < deg2,
message: `Expected ${deg1} to be less than ${deg2}`
};
}
}
},
toBeCloseTo: function (util, customEqualityTesters) {
return {
compare: function (actual, expected, precision) {
var deg1 = helpers.angleToDegrees(actual),
deg2 = helpers.angleToDegrees(expected);
precision = precision || 2;
return {
pass: Math.abs(deg1 - deg2) < Math.pow(10, -precision) / 2,
message: `Expected ${deg1} to be close to ${deg2} (precision: ${precision})`
};
}
}
}
};
如上所述,这些函数将角度转换为度数,并将比较结果转化为一个布尔值。如果角度小于或大于预期角度,它将返回pass: true
将tobe()
匹配器返回的结果转换为true;否则,它将返回pass: false
。最后,它将组成带有消息的结果对象,以便您可以将错误消息打印到控制台。
Protractor提供了一个在线测试环境来测试您的代码。该测试环境称为Protractor Runner。您可以使用Protractor Runner在浏览器中运行您的测试用例,这是因为Protractor使用了Selenium WebDriver。
要打开Protractor Runner,请打开命令行,并导航至您的项目根目录。在那里,运行以下命令:
protractor --elementExplorer
这将启动Protractor Runner,并打开一个Chrome浏览器窗口。现在,您可以使用Chrome浏览器窗口中的开发工具控制台,以交互方式测试代码。
> var angleA = element(by.id('angle-a'));
> var angleB = element(by.id('angle-b'));
> angleA.getText()
.then(function (actual) {
expect(actual).toBeLessThan(90);
expect(actual).not.toBeGreaterThan(0);
expect(actual).toBeCloseTo(angleB.getText(), 0);
});
这里,我们使用by.id()
选择器获取id为angle-a
和angle-b
的元素。然后,我们调用getText()
方法获取角度文本,并使用我们自己的tobeLessThan()
,not.toBeGreaterThan()
和toBeCloseTo()
匹配器来检查角度是否符合我们的预期。
在本文中,我们介绍了如何使用Protractor在线测验来测量角度。我们通过定义angleMatchers
对象和一些辅助函数来实现这一点。然后,我们使用Protractor Runner在浏览器中交互式地测试我们的代码。