我正在使用protractor-cucumberjs框架进行自动化测试。而且我在运行测试时遇到了一个问题,尤其是当我尝试与DOM交互(例如单击按钮)时。
我已经在网上检查是否有解决此问题的方法,但是我尝试了所有操作(增加defaultTimeOut),但没有成功。
我在TypeScript中写了我的黄瓜步骤,并使用babel将ts转换为ES5,因为我使用的是NodeJs版本:7.4.0
这是我在TS中的黄瓜步骤:
When('L\'utilisateur coche {string} sur la checkbox', async(string) => {
await element(by.id(string)).click();
});
这是ES5中的转换ts:
cucumber_1.When('L\'utilisateur coche {string} sur la checkbox', function (string) { return __awaiter(_this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, protractor_1.element(protractor_1.by.id(string)).click()];
case 1:
_a.sent();
return [2 /*return*/];
}
});
}); });
输出为:
Error: function timed out, ensure the promise resolves within 60000 milliseconds
我不明白为什么,我什至在测试过程中拍摄了chrome的屏幕截图,并且可以看到渲染已完全完成。
感谢您的帮助。
亚历山大·布德(
编辑:
这是我的新测试:
Given('L\'utilisateur se déplace sur la page {string}', function (string) {
// Write code here that turns the phrase above into concrete actions
return browser.get(browser.baseUrl + string);
});
When('L\'utilisateur coche {string} sur la radiobox', function (string) {
// Write code here that turns the phrase above into concrete actions
return element(by.id(string)).click();
});
When('L\'utilisateur ajoute {string} dans le champ {string}', function (string, string2) {
// Write code here that turns the phrase above into concrete actions
return element(by.id(string2)).sendKeys(string1);
});
When('L\'utilisateur clique sur le bouton {string}', function (string) {
// Write code here that turns the phrase above into concrete actions
return element(by.id(string)).click();
});
When('L\'utilisateur sélectionne le logiciel LAD qui a pour code {string}', function (string) {
// Write code here that turns the phrase above into concrete actions
return element(by.id(string)).click();
});
When('L\'utilisateur sélectionne le type de messagerie {string}', function (string) {
// Write code here that turns the phrase above into concrete actions
return element(by.id(string)).click();
});
When('L\'utilisateur coche {string} sur la checkbox', function (string) {
// Write code here that turns the phrase above into concrete actions
return element(by.id(string)).click();
});
Then('Le bouton {string} est enabled', function (string) {
// Write code here that turns the phrase above into concrete actions
return expect(element(by.id(string)).isEnabled()).to.equal(true);;
});
我有同样的问题(功能超时)