Nie mogę znaleźć poprawnej składni do iteracji przez innerHTML z nodelist w Nightwatch. Próbuję zwrócić adresy URL wszystkich znaczników "a" zawartych w treści treści strony, ale nie mogę znaleźć sposobu na uzyskanie dostępu do wyników polecenia querySelectorAll w nocnym zegarku.Jak iterować poprzez querySelectorAll wyniki w nocnym zegarze
browser.execute(function() {
return document.querySelectorAll("div.field-item.even a");
},
function(tags){
console.log(tags.value);
console.log(tags.value[9]);
})
Na stronie testowałem 10 linków. Selektor zapytania wydaje się je wszystkie odzyskiwania, ponieważ console.log (tags.value) drukuje następujące:
[ { ELEMENT: '1' },
{ ELEMENT: '2' },
{ ELEMENT: '3' },
{ ELEMENT: '4' },
{ ELEMENT: '5' },
{ ELEMENT: '6' },
{ ELEMENT: '7' },
{ ELEMENT: '8' },
{ ELEMENT: '9' },
{ ELEMENT: '10' } ]
i console.log (tags.value [9]) drukuje:
{ ELEMENT: '10' }
Nie mogę jednak znaleźć sposobu na pobranie linku z tych wyników. Dołączenie .innerHTML do dowolnej z tych zmiennych zwraca "niezdefiniowane". Czy istnieje sposób do iteracji poprzez querySelectorAll wyników i pobierania adresów URL w nim?
EDIT: Wydaje się, że mogę uzyskać ten sam rezultat, jeśli mogę użyć następującego kodu:
browser.elements("css selector", "div.field-item.even a", function(tags) {
console.log(tags.value);
console.log(tags.value[9]);
})
I początkowo myślałem, że pracuję w liście węzłów, ale myślę, że rzeczywiście jest zwrócił obiekt WebElement JSON zgodnie z documentation for the .elements command.
Nadal nie mogę uzyskać dostępu do wewnętrznego tekstu. Jakieś pomysły?
Możliwy duplikat [Jak pętli wybranych elementów z document.querySelectorAll] (http://stackoverflow.com/questions/12330086/how- to-loop-through-selected-elements-with-document-queryselectorall) – hippietrail