8

sto provando ad affermare/verificare più elementi per un attributo con Nightwatch.js.Nightwatch js come affermare più elementi

Ho provato a utilizzare il comando "elementi" per selenio ma sembra che in realtà non restituisca un tag.

browser.elements('css selector','icon_checkmark', function (result) { 
    this.verify.attributeEquals(result.value, 'aria-hidden', 'true'); 
}) 

La console uscite questo errore:

Testing if attribute aria-hidden of <[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]> equals "true". 
Element could not be located. - expected "true" but got: null 
ERROR: Unable to locate element: "[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]" using: css selector 

Sembra che trova le cose giuste, perché ci dovrebbe essere 6, ma poi in qualche modo ho letto la cosa sbagliata? Console.log di result.value [0] restituisce solo {ELEMENT: '19'} che sembra corretto.

Qualche idea su come potrei fare questo lavoro? Voglio controllare se tutti gli elementi con la classe icon_checkmark hanno un attributo aria-hidden = "true".

+0

https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/elements - "restituisce: : un elenco di {array <{elemento di stringa}>}. Oggetti JSON WebElement per gli elementi individuati. " sfortunatamente non sono riuscito a capire come ottenere l'elemento reale con "L'ID opaco assegnato all'elemento dal server". – mrzmyr

+0

Non riesco a capirlo, ma l'ho fatto un po 'oltre: https://github.com/nightwatchjs/nightwatch/issues/512 –

risposta

-3

result.value è un array. così si avrebbe bisogno di scorrere l'result.value array [x]

8

attributeEquals localizzare elemento tramite i selettori css, mentre elements rendimenti ID dell'elemento, quindi non è possibile individuare l'elemento in questo modo. È possibile utilizzare elementIdAttribute per ottenere l'elemento e verificarlo.

browser.elements('css selector','icon_checkmark', function (result) { 
    result.value.map(function (v, k) { 
    browser.elementIdAttribute(v.ELEMENT, 'aria-hidden', function (res) { 
     // true 
     console.log(res.value) 
    }); 
    }); 
}) 
Problemi correlati