2014-12-22 10 views
5

Qual è la differenza tra ElementFinder.prototype.isPresent e ElementFinder.prototype.isElementPresent?Differenza tra isPresent e isElementPresent

Sembra isElementPresent attende angolare alla fine, mentre isPresent appena fa un controllo subito, ma non posso dirlo con certezza.

Attualmente, isElementPresent è guasto come da Protractor bug, quindi non posso testare manualmente la differenza.

+0

Oops, forse non è rotto, ma lo stavo usando male. Sembra che 'isElementPresent' si aspetti un localizzatore come parametro. Restituirà 'true' se c'è più di un elemento figlio che corrisponde al localizzatore - penso. Potrei sicuramente usare la verifica però. –

+0

Ciao @mitchell, per favore considera la mia risposta 'accettata'. – Adam

risposta

2

Sia isPresent e isElementPresent restituire un "Element Finder" che:.

"rappresenta un singolo elemento di un ElementArrayFinder (ed è più simile a un oggetto comodità) Di conseguenza, tutto ciò che può essere fatto con un ElementFinder, può anche essere fatto utilizzando un ElementArrayFinder.Il ElementFinder può essere trattato come un WebElement per la maggior parte degli scopi, in particolare, è possibile eseguire azioni (ad es. fare clic, getText) su di esse come si farebbe con un WebElement. "

Versione di Reader's Digest: è possibile richiamare i metodi su di esso o verificarne l'esistenza.

isElementPresent chiama in realtà isPresent se il localizzatore è soddisfatta, vedere la dichiarazione di ritorno: enter image description here

Essi essenzialmente fanno la stessa cosa. Il goniometro è costruito su WebDriver, che ha i suoi metodi. Puoi anche usare questi metodi in Goniometro. Nel caso in cui il test di Angular con questi metodi potesse portare a informazioni errate, ha fornito agli utenti una soluzione angolare; isElementPresent è uno di quelli, per la ragione che hai menzionato.

tl; dr: Utilizzare isPresent. È stato costruito per Protractor per testare Angular.