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

Selenium nie można się dostać do żadnego elementu

Object Storage Arubacloud
–1 głos
375 wizyt
pytanie zadane 15 kwietnia 2020 w Python przez bbbbbbbb Użytkownik (950 p.)

Problem następujący potrzebuję dostać się do elementu span a konkretniej do <span>coś</span> i kliknąć w to coś bo inaczej akcji się zrobić nie da niestety. Struktura kodu uproszczona

div id=toolbar

div id=links

ul id=menutable

li w nim :

span ale tego nie ruszam, pod nim:

a class=menubutton z obrazkiem w znaczniku a:

span "coś"

 

NIe wpisywałem całego kodu html bo za dużo czasu to zajmuje a niestety nie da się kopiować struktury html z inspektora w chromie ( chyba że się da ale w sumie mam to gdzieś )

Więc jak koledzy jak ja ma się dobrać do tego orzeszka w spanie??

tutaj kod pythona z moją ścieżką którą ludzie na stacku zachwalali po niebiosa:

st = driver.find_element_by_xpath("//div[@id='toolbar'/div[@id='linkst']/ul[@id='menutable']/li[2]/a/span").click()

 

1 odpowiedź

+1 głos
odpowiedź 15 kwietnia 2020 przez adrian17 Ekspert (344,860 p.)
Po pierwsze, na oko masz błąd w składni (nie zamknąłeś []).

Po drugie, wywołujesz click(), który... klika. I zwraca None. Jak chcesz element, to wywołaj samo find_element_by_xpath.
komentarz 15 kwietnia 2020 przez bbbbbbbb Użytkownik (950 p.)
wiem że jest błąd napisałem to na szybko i nie chciało mi się już tego poprawiać , generalnie chcę dostać się do elementu i go kliknąć żeby mnie wysłało na podstronę na której będę wykonywał kolejne akcje. Najlepsze jest to że kiedy nawet w inspektorze kopiuję ścieżkę i wklejam ją do kodu to też wywala błąd. Generalnie przepisywałem te parszywą linijkę kodu około 30 razy i próbowałem każdej możliwej kombinacji i co? i nic......Nawet klikanie w href który tam jest nie działa XD nic kompletnie nie działa więc już ma trochę dosyć tej posranej biblioteki. Na poprzedniej podstronie wywołuję coś takiego:

find = driver.find_element_by_xpath("//*[contains(text(), 'music')]").click()

ten element wygląda jak button ale nawet nim nie jest i działa, przenosi mnie do konkretnej strony ale już następna taka operacja wywala mi błąd albo co najlepsze zamyka mi przeglądarkę a w konsoli nie ma żadnych błędów XD Zaznaczam że nie jestem ekspertem w selenium chcę sobie zautomatyzować pewne czynności ale niestety nic mi tego nie ułatwia nawet twórcy biblioteki za pomocą której się to robi XD

i ni wiem co za ćwierć mózg dały mi minusa XD z resztą może ich być nawet milion obojętnie.
komentarz 15 kwietnia 2020 przez bbbbbbbb Użytkownik (950 p.)
edycja 15 kwietnia 2020 przez bbbbbbbb
Dobra chyba wiem o co kaman. gdy się zaloguje przechodzę do strony startowej, następnie klikam w wspomniany wcześniej pseudo button i przenosi mnie do kolejnej podstrony z tym że na kolejnej karcie może selenium zostaje na tej poprzedniej i dlatego nie może znaleść elementu bo po prostu go tam nie ma. Tylko teraz jeśli to faktycznie prawda to jak ja mam robić akcje na tej następnej karcie po zalogowaniu? Wywala mi taki błąd:

Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[contains(text(), 'music')]"}

"Nie ma takiego elementu" więc zapewne to właśnie ten błąd.

tylko właśnie, gdy loguje mnie i przenosi do kolejnej karty to ta docelowa karta jest właśnie tą aktywną w odpalonej przeglądarce więc w sumie jestem w punkcie wyjścia.

EDIT: dokładnie tak jak przypuszczałem jestem nadal na stronie startowej, wywołałem metodę click na tym elemencie music i otwiera nową kartę dlatego nie znalazło elementu.

Wątek zakończony

Podobne pytania

0 głosów
1 odpowiedź 561 wizyt
pytanie zadane 2 lipca 2017 w C# przez Raptowny Początkujący (420 p.)
0 głosów
1 odpowiedź 435 wizyt
0 głosów
1 odpowiedź 181 wizyt
pytanie zadane 2 kwietnia 2018 w Python przez pionk18 Obywatel (1,590 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...