Problemy z kliknięciami

Błąd „Element nie jest klikalny”

Kliknięcie ChromeDriver odbywa się poprzez symulowanie kliknięcia myszą w środku pierwszego prostokąta klienta elementu (lub ograniczającego prostokąta klienta, jeśli nie ma pierwszego prostokąta klienta). Najłatwiejszym sposobem sprawdzenia, gdzie ChromeDriver próbuje kliknąć, jest otwarcie narzędzi deweloperskich w Chrome i sprawdzenie elementu, który ma zostać kliknięty, przed wywołaniem operacji kliknięcia. Wybierz element w inspektorze i zwróć uwagę na niebieskie pola reprezentujące prostokąty klienta, jak pokazano poniżej. ChromeDriver spróbuje kliknąć środek pierwszego elementu.

Jeśli ChromeDriver zgłasza błąd „Element nie można kliknąć”, najprawdopodobniej użytkownik nie klika danej lokalizacji. Aby to sprawdzić, umieść kursor na środku pierwszego odcinka klienta i sprawdź, czy można go kliknąć.

W tym przypadku podczas testu próbowano kliknąć element zakotwiczony. W tym przypadku kotwicy nie można kliknąć, a jedynie obraz podrzędny. Ze względu na styl margin-bottom w elemencie obrazu środek elementu zakotwiczonego wykracza poza granice obrazów, które można kliknąć, więc ChromeDriver zwraca błąd. Więcej informacji na temat określania pozycji lub rozmiaru znajdziesz w specyfikacji W3. Aby rozwiązać ten problem, kliknij obraz zamiast reklamy zakotwiczonej.

Błąd „Element nie można kliknąć” często występuje w tych sytuacjach, gdy podczas testu:

  • Kliknij kotwicę, której klikalne elementy podrzędne nie znajdują się w granicach kotwicy (jak powyżej).
  • Kliknij element w całości lub częściowo pod innym elementem.
  • Kliknij element poza ekranem, gdy widoczna jest stała nakładka (element pojawi się na ekranie, ale może też pojawić się pod stałą nakładką).
  • Kliknij element, którego nie można kliknąć pośrodku (np. niektóre typy wypukłych elementów SVG).

Aby rozwiązać te problemy, często wystarczy kliknąć element podrzędny danego elementu, automatycznie usunąć lub ukryć element blokujący, użyć interfejsu API zaawansowanych interakcji, aby kliknąć przesunięcie od lewego górnego rogu elementu, albo symulować zdarzenie kliknięcia myszą (JavaScript).

Błąd „Element nie jest klikalny”

Najprawdopodobniej lokalizacja elementu uległa zmianie jakiś czas po określeniu jego lokalizacji przez ChromeDriver, ale przed wykonaniem kliknięcia w wybranej lokalizacji.

Aby ustalić, czy na tym polega problem, wychwycij wyjątek od kliknięcia i natychmiast zapisz bieżącą lokalizację i rozmiar elementu. Porównaj to z lokalizacją, którą ChromeDriver zgłosił w wyjątku, i sprawdź, czy jest ona inna. Jeśli tak, poczekaj, aż element przestanie się poruszać, lub spróbuj kliknąć ponownie. W przeciwnym razie zgłoś błąd na małej stronie testowej, która może pomóc w odtworzeniu problemu (nawet jeśli rzadko jest on przyczyną problemu).

ChromeDriver nie może kliknąć ruchomego elementu

Ta funkcja nie jest obsługiwana przez ChromeDriver. Jeśli element w końcu się zatrzyma, poczekaj, aż on stanie się widoczny. Jeśli element nigdy się nie kończy, ChromeDriver nie gwarantuje, że kliknięcie będzie skuteczne.