Aktywne Wpisy
rozowypasiak +129
Oddajcie mi stary dobry wykop! Coście z tym portalem uczynili ( ͡° ʖ̯ ͡°)
Główna to jakiś dramat - fake newsy i clickbaitowe tytuły jak z portalu na O, a podobno kiedyś byli tu świadomi użytkownicy, którzy nie dają sobie wciskać kitu ( ͡~ ͜ʖ ͡°) #pdk
Mirko świeci pustkami, a jak już ktoś coś ośmieli się coś dodać, to spora część komentarzy jest
Główna to jakiś dramat - fake newsy i clickbaitowe tytuły jak z portalu na O, a podobno kiedyś byli tu świadomi użytkownicy, którzy nie dają sobie wciskać kitu ( ͡~ ͜ʖ ͡°) #pdk
Mirko świeci pustkami, a jak już ktoś coś ośmieli się coś dodać, to spora część komentarzy jest
michal1498 +8
Jakie macie powody by żyć?
#przegryw
#przegryw
#testowanieoprogramowania
Mirki, mam dziwny case do automatyzacji w pracy.
Mianowicie mam zebrać wszystkie paragrafy z cytowanych wypowiedzi na webapce i potem to wyeksportować do jsona.
Use case jest taki, że mamy w produkcie opinie użytkowników i chcemy walidowac te wypowiedzi z naszym CMS.
Jak w strukturze DOM
Imię "cytat"
Które są pod class="nazwaklasy"
Wyciągnąć wszystkie wartości, które mają cudzysłów?
Używamy js i Cypressa jako framework, próbuje to zrobić przez cy.get().contains ("").then
I potem czytać wartość ale nie działa
do zmiennej quote podstawilem document.getElementByTag('p') i w sumie teraz musialbym to w jakas petle wziac i wyconsolowac wartości?
let allParagraphs = document.getElementByTagName('p')
for (let i = 0; i < allParagraphs.length; i++) { console.log(allParagraphs[1]) }
To zwraca mi wszystkie
Teraz muszę dodać jakiś trim, który będzie rozpoznawał " " jako coś co mnie interesuje. Tutaj musze to jakoś regexem zrobić?
Chcialbym cos takiego:
znalezc wszystkie elementy , potem to przeksztalcic w tekst i iterowac po kazdym w ktorym znajde wyrazenie regex z tym cudzyslowem
No i generalnie nie wiem jak to napisac, bo mam document.querySelectorAll('p')
No i w ogóle to bez sensu brać wszystkie paragrafy, skoro interesują cię tylko te, które mają jakąś klasę, czy tam jakiś ich rodzic ma konkretną klasę.
A jak element jest bardziej skomplikowany, że innerText nie zwraca tego co chcesz, to zawsze możesz użyć .childNodes[i].nodeValue
- pobierz kolekcję wszystkich elementów z klasą "class="nazwaklasy""
- przefiltruj ją pod kątem spełniania warunku element posiada dziecko lub sam posiada ciąg znaków który #!$%@? coś na takim regexpie "([^"]*)"
to będzie:
const matchedParagraphs =
[...document.getElementsByClassName("toggle")]
.filter(par => par.outerText.match(new RegExp('"([^"]*)"')) })