typescript - Argument av typen 'By' kan inte tilldelas parametern av typen 'ProtractorBy | WebElement'


Jag försöker lära mig Protractor och jag har ett projekt uppsatt som har denna kod:

var elementToWaitFor = by.id(controlIdToWaitFor);
browser.wait(x=> browser.isElementPresent(elementToWaitFor));

Detta ger typescript-felet:

Argument av typen 'By' kan inte tilldelas parametern av typen 'ProtractorBy | WebElement'

Men om jag gör detta:

var elementToWaitFor = $('#' + controlIdToWaitFor);
browser.wait(x=> browser.isElementPresent(elementToWaitFor));

Felet försvinner.

Jag trodde att de skulle vara desamma. Jag gissar att jag stöter på ett problem med protractor jämfört med selenium, men jag är inte säker på vad lösningen är.

Observera: Min TypeScript-fil har detta högst upp (om det är relevant):

import {browser, element, by, By, $, $$, ExpectedConditions, protractor} from 'protractor';

Svar #1

Dessa är samma:

var elementToWaitFor = element(by.id(controlIdToWaitFor));
var elementToWaitFor = $('#' + controlIdToWaitFor);