Ich bin ein Anfänger bei der Verwendung von Winkelmesser und ich verwende es, um eine einfache Testautomatisierung für ein Add-in in Outlook zu erstellen.
Ich teste derzeit vor:Winkelmesser: Gelöstes Versprechen wird immer noch abgelehnt
- Öffnen Sie eine E-Mail
- Klicken Sie auf Add-In-Taste
Die Frage ist, in einer meiner Funktionen (openEmail), die browser.wait
verwendet, Die von ihm zurückgegebene Zusage wird abgelehnt, nachdem sie gelöst wurde.
utility.js
function waitElement(method, { container, selector, timer }) {
let _element = container ?
container.$(selector) : $(selector);
return browser.wait(
protractor.ExpectedConditions[method](_element),
1000 * (timer || 1),
'Unable to wait for the element'
).then((() => _element));
}
isClickable(options) {
return waitElement('elementToBeClickable', options);
}
outlook.js
let _ = require('./utility.js');
function openEmail(email) {
_.isClickable({
selector: email,
timer: 15
}).then(() => {
console.log('OPEN EMAIL - CLICKABLE');
el.click();
}).catch(() => {
throw Error('unable to click email.');
});
}
function signIn(credentials) {
let usernameField = $('#cred_userid_inputtext');
let passwordField = $('#cred_password_inputtext');
usernameField.sendKeys(credentials.username);
passwordField.sendKeys(credentials.password);
_.isClickable({
selector: '#cred_sign_in_button',
timer: 5
}).then(el => {
console.log('SIGN IN - CLICKABLE');
el.click();
}).catch(() => {
throw Error('unable to click sign in button.');
});
}
test.js
let outlook = require('./outlook.js');
describe('log in',() => {
beforeAll(() => {
browser.ignoreSynchronization = true;
browser.get('https://outlook.office.com');
// credentials & cssSelector are somewhere above the file
outlook.signIn(credentials);
outlook.openEmail(cssSelector);
});
it('should display log in',() => {
// some tests here
});
});
In meinem Terminal, meldet es SIGN IN - CLICKABLE
und OPEN EMAIL - CLICKABLE
, aber es zeigt auch den Fehler von openEmail
- unable to click email.
Ich bin verwirrt, weil browser.wait
eine Zusage zurückgibt, und AFAIK eine aufgelöste Versprechen kann nicht zurückgewiesen werden.
Ah ja, das ist die Ursache, nur ein dummer Fehler. Vielen Dank – CRIS