• 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

VPS Starter Arubacloud
0 głosów
382 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 (255,840 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 (255,840 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,681 wizyt
0 głosów
1 odpowiedź 210 wizyt
0 głosów
1 odpowiedź 169 wizyt

93,020 zapytań

141,985 odpowiedzi

321,283 komentarzy

62,366 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...