2015-03-11 7 views
5

html:goniometro non è possibile individuare elementi con i CSS sul ng clic elemento

<button class="helperButton ng-scope" ng-if="!isDisabled && displayHelper('none')" ng-click="select('none', $event);" type="button"> × Select None</button> 

cercando di individuare con:

element(by.css('button[ng-click="select(\'none\', $event);"]')); 

get errore:

Failed: No element found using locator: By.cssSelector("button[ng-click=\"select('none', $event);\"]")

questo link fornisce una soluzione AngularJS Protractor - Finding an Element on a Page Using Ng-Click Binding ma non ha dettagli sulla funzione a cui fa riferimento. Qualsiasi aiuto sarebbe apprezzato.

risposta

4

Avere il vostro localizzatore basato su ng-click non è abbastanza affidabile e leggibile.

Invece vorrei contare sul pulsante di testo:

by.xpath('//button[contains(., "Select None")]') 

o, al classe:

by.css('button.helperButton') 

O, se avere un controllo sui modelli di applicazione HTML - aggiungi un attributo e uso id:

by.id('mybuttonid') 

Se si desidera continuare a utilizzare ng-click - provare a utilizzare la sintassi selettore starts-with CSS per controllare ng-click attributo:

by.css('button[ng-click^=select]') 
+0

ho provato testo del pulsante ma ha quello strano personaggio x e tutti quegli spazi che non rende lavoro. – awaken

+0

bene @awaken, ecco perché ho usato 'contains()'. È strano che tu non riesca ancora a trovarlo. Ci sono elementi 'frame' o' iframe' nella pagina? Grazie. – alecxe

+0

la pagina ha tonnellate di elementi che soddisfano questi metodi di localizzazione e otterrò 'ATTENZIONE - più di un elemento trovato per locator By.xpath (" // pulsante [contiene (., \ "Seleziona Nessuno \")] ") - verrà utilizzato il primo risultato "ecco perché sto usando ng-click – awaken