Wpis z mikrobloga

Mam cholerny problem z kliknięciem jednego elementu. W konsoli przeglądarki ustawiam odpowiedni iframe i próbuję kliknąć poniższy element, ale kompletnie mi to nie wychodzi:


Poniższa metoda bez problemu odnajduje szukany element:
$x("//*[contains(@id,'card_0')]")
lub
$x("//*[contains(@id,'cardtouch0')]")

ale gdy próbuje kliknąć go w poniższy sposób nic się nie dzieje:
$x("//*[contains(@id,'card_0')]")[0].click()
lub
$x("//*[contains(@id,'cardtouch0')]")[0].click()

Element jest widoczny na ekranie i nie znajduje się nad nim żadne okienko. Kliknięcie nie rzuca żadnym błędem w konsoli (również bezpośrednio w moim skrypcie pythonowym, nie występuje żadne element is not clicable at point, po prostu skrypt idzie dalej), ale kliknięcie elementu nie następuje. Gdy kliknę myszką wszystko jest w porządku.

#jquery #selenium #python #javascript
  • 6
via Wykop Mobilny (Android)
  • 0
@Krunhy:
1. Dlaczego nie wybierasz elementu przez [@id=card_0]?
2. Jestes pewny, ze po *kliknieciu* powinno sie cos dziac? To touch wyglada jakby ten element mial reagowac na zdarzenia z ekranu dotykowego, nie klikniecia mysza (oczywiscie moge sie mylic)
@m_bielawski: Możliwe, że powinienem, ale poprzednia metoda wyszukuje co trzeba więc nie tykałem. Jest to aplikacja mobilna przepisana do aplikacji webowej, więc stąd mogło się to wziąć. Po kliknięciu w element zmienia się wyświetlany obrazek.
@Krunhy:
1. Kod wklejaj w paste bin albo w podobne rozwiązanie ;)

2. Jeśli nie wyrzuca Ci błędu i nie dzieje się akcja, która powinna się dziać to najbardziej oczywistym rozwiązaniem jest to, że wcale nie klikasz tego, co chcesz. Sprawdź więc 10 razy czy xpath jest poprawny, czy na pewno jest tylko jeden taki element i czy to na pewno ten element wyzwala jakąś akcję.
Zamiast 'click' zaloguj gdzieś tekst