• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Nie moge wyswietlic wartosci w console.log atrubutu TITTLE Cannot read property 'querySelectorAll' of undefined

Object Storage Arubacloud
0 głosów
261 wizyt
pytanie zadane 12 września 2022 w JavaScript przez wodoyo Początkujący (480 p.)
edycja 13 września 2022 przez wodoyo

W narzedziach dev tools cgrome dziala poprawnie uzywam takiej komendy , korzystam z puppeeter

 

document.querySelectorAll('.selector')[0].title.

wynik mam : ' 12345 ' ( taka wartosc ma class title="12345)

Ale teraz w Visual Code nie moge tego zanic wyswielic . W jaki sposob moge przeniesc wartosc atrybutu title to stalej /zmiennej ??

 

probuje 


 

var emotion = await page.document.querySelectorAl('.selector')[0].title

console.log(emotion)

ale to nie dziala 

TypeError: Cannot read property 'querySelectorAll' of undefined

1
komentarz 12 września 2022 przez ScriptyChris Mędrzec (190,190 p.)

Czy korzystasz z Puppeteer i stąd użycie page?

 

komentarz 13 września 2022 przez wodoyo Początkujący (480 p.)
tak korzystam z puppeter i nie moge wyswietlic wartosci title

2 odpowiedzi

0 głosów
odpowiedź 12 września 2022 przez doublechess Obywatel (1,300 p.)
var emotion = document.querySelectorAl('.selector')[0].title;
 
console.log(emotion);

 

komentarz 13 września 2022 przez wodoyo Początkujący (480 p.)
przeciez to jest dokladnie to co probowalem i nie dziala
0 głosów
odpowiedź 12 września 2022 przez VBService Ekspert (253,120 p.)
edycja 12 września 2022 przez VBService

Document Object Model (DOM) nie zawiera obiektu o nazwie page.

Rozumiem, że miałeś na myśli w dużym uproszczeniu, to co widać w przeglądarce, kod html, który znajduje się między

<body>

<!-- Kod strony -->

</body>

tak jak już napisał @doublechess, wystarczy same odwołanie się do document.

 

Może np. zaistnieć też i taka sytuacja

const page = document.body;

const emotion = page.querySelectorAll('.selector')[0].title;
 
console.log(emotion);

 

 

komentarz 13 września 2022 przez wodoyo Początkujący (480 p.)

await . page , poniewaz korzystam z puppeteer 

komentarz 13 września 2022 przez wodoyo Początkujący (480 p.)
edycja 13 września 2022 przez wodoyo

Probuje te wszystkie rozwiania ale caly czas nie dziala w stylu


 

Cannot read properties of null (reading 'getAttribute')

albo undefinied argument title etc

 

Wydaje mi sie ze problem jest z tym ze chce wziasc atrybut [0).title czyli pierwszy w Array i te rozwiazania ktore podales nie dzialaja w moim przypadku..

 

 

Do tej pory kiedy chcialem wziasc elentent z tablicy ale zwykla wartosc a nie wartosc atrybutu title to wszystko dzialalo, przypuszczam ze jest to maly problem gdzie robie blad tylko nie wiem gdzie. To co dzialalo wczesniej wyglada tak:

 

await page.waitForSelector('selektor' );
const zmienna = await page.evaluate(() =>
Array.from(document.querySelectorAll("selektor" , {waitUntil: 'networkidle2'} )).map(partner =>
       partner.innerText.trim()))

 

z tym ze teraz chce zrobic dokladnie to samo ale wziasc wartosc (atrybut jaki jest title) dla kazdego selektora 

komentarz 13 września 2022 przez wodoyo Początkujący (480 p.)
przy okazji zauwalem tez raczej nie robie jakies literowki ze w consoli dec chrom raz sie wyswieta a raz nie i mam blad

 

TypeError: Cannot read properties of undefined (reading 'title')
komentarz 13 września 2022 przez ScriptyChris Mędrzec (190,190 p.)

@wodoyo, pokaż Twój aktualny kod, którym próbujesz odczytać title, a który rzuca błędem.

komentarz 14 września 2022 przez VBService Ekspert (253,120 p.)

@wodoyo, skoro to 

await page.waitForSelector('selektor' );  
const zmienna = await page.evaluate(() => Array.from(document.querySelectorAll("selektor", {waitUntil: 'networkidle2'})).map(partner => partner.innerText.trim()));

Tobie działało, to zamień na np. tak

await page.waitForSelector('selektor');  
const zmienna = await page.evaluate(() => Array.from(document.querySelectorAll("selektor", {waitUntil: 'networkidle2'})).map(partner => partner.title));
  
console.log(zmienna[0]);

 lub

await page.waitForSelector('selektor');  
const zmienna = await page.evaluate(() => [...document.querySelectorAll("selektor", {waitUntil: 'networkidle2'})].map(partner => partner.title));
  
console.log(zmienna[0]);

 

Podobne pytania

0 głosów
2 odpowiedzi 1,589 wizyt
0 głosów
1 odpowiedź 79 wizyt
0 głosów
1 odpowiedź 139 wizyt

92,556 zapytań

141,404 odpowiedzi

319,560 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...