xpath - Hur man returnerar namnet på ett element vid fel i protractor?
Jag försöker hantera olika felscenarier när jag letar efter ett element med Protractor i TypeScript. Så här gör jag:
textBoxA = this.findElementBy(locator.XPATH,"//input[@formname='name']");
Här //input[@formname='name'] är min xpath för elementet.
Om xpath anges fel, ger protractor mig ett fel som no element found using xpath... och förmodligen också filen där specen misslyckades osv, vilket många npm-rapportörer också rapporterar.
Men istället för det vill jag ha namnet på elementet som misslyckades som i exemplet ovan, jag vill att textBoxA ska visas någonstans i loggen så att det är lätt att felsöka om jag har många specifikationer.
Hur kan jag uppnå det?
Svar #1
Du kan använda de två nedanstående metoderna för detta:
- Ett bättre tillvägagångssätt för detta skulle vara att implementera
function(err){}när du anropar någon handling på vilket element som helst. Här kan du hantera felet på följande sätt:
ElementEjHittad, NoSuchWindowsError eller ElementFöråldradError etc...
Ett annat tillvägagångssätt kan vara att implementera en wrapper när elementet skapas. Till exempel: Till exempel:
var nameElem = findElement(by.id('name'), 'Name Element');
definition av findElement-funktion:
findElement: function(elemCss, elemName){
element(elemCss).isPresent().then(function(value){
if (present) {
/* element exists */
} else {
/* element doesn't exist, use elemName and record anywhere in your custom log */
}
})
}
