Я пытаюсь расширить ElementFinder of Protractor несколькими дополнительными методами. Я делаю это точно так же, как и другие классы, где это работает без проблем. В отдельном файле с именем «protractorElement.Extend.ts» содержится объявление модуля и реализация метода:
declare module 'protractor/built/element' {
export interface ElementFinder {
sendText(text: string) : promise.Promise<void>;
safeClick() : promise.Promise<void>;
hasClass(clazz: string) : Promise<boolean>;
}
}
ElementFinder.prototype.safeClick = async function () {
let self = this;
try {
await browser.wait(ExpectedConditions.elementToBeClickable(self), 5000);
return self.click(); //if found
}
catch (e) {
console.error(`Element is not clickable`); //error
}
}
export * from 'protractor';
When calling this in my test file -
affirmationPage.btnNext.safeClick();
Я получаю эту ошибку - - Сбой: affirmationPage.btnNext.safeClick не является функцией
Я где-то читал, мне нужно инициализировать это в файле conf. js Метод OnPrepare файла. Я не уверен, как это сделать.