Masalah klik

Error 'Elemen tidak dapat diklik'

Pengklikan ChromeDriver berfungsi dengan menyimulasikan klik mouse di tengah rect klien pertama elemen (atau rect klien pembatas jika tidak memiliki rect klien pertama). Cara termudah untuk mengetahui tempat ChromeDriver coba diklik adalah dengan membuka Chrome DevTools dan memeriksa elemen yang akan diklik tepat sebelum operasi klik Anda dipanggil. Pilih elemen di inspector dan perhatikan kotak biru yang mewakili rect klien elemen, seperti gambar di bawah ini. ChromeDriver akan mencoba mengklik bagian tengah tombol pertama.

Jika ChromeDriver menampilkan error 'Elemen tidak dapat diklik', kemungkinan besar karena lokasi tersebut tidak benar-benar dapat diklik oleh pengguna. Untuk menguji, tempatkan kursor Anda di tengah-tengah klien pertama rect sendiri dan lihat apakah lokasi tersebut dapat diklik.

Dalam kasus di atas, pengujian mencoba mengklik elemen anchor. Dalam hal ini, Anchor tidak dapat diklik; hanya gambar turunan yang dapat diklik. Karena adanya gaya margin-bottom pada elemen gambar, bagian tengah elemen anchor berada di luar batas gambar yang dapat diklik, sehingga ChromeDriver akan menampilkan error. Untuk mengetahui info selengkapnya tentang cara menentukan posisi atau ukuran, lihat spesifikasi W3. Untuk memperbaiki kasus di atas, klik gambar, bukan anchor.

Error 'Elemen tidak dapat diklik' sering terjadi dalam situasi berikut saat pengujian mencoba:

  • Klik anchor yang elemen turunan yang dapat dikliknya tidak berada dalam batas anchor (seperti di atas)
  • Mengklik elemen secara penuh atau sebagian di bawah elemen lain
  • Klik elemen di luar layar saat overlay tetap ada (elemen akan di-scroll hingga terlihat, tetapi mungkin juga di-scroll di bawah overlay tetap)
  • Klik elemen yang tidak dapat diklik di tengahnya (misalnya, beberapa jenis elemen SVG cembung)

Masalah ini sering kali dapat diatasi dengan mengklik turunan elemen yang diberikan, menghapus atau menyembunyikan elemen pemblokiran secara terprogram, menggunakan API interaksi lanjutan untuk mengklik offset dari kiri atas elemen, atau dengan menyimulasikan peristiwa klik mouse di javascript.

Error 'Elemen tidak dapat diklik'

Hal ini kemungkinan besar terjadi karena lokasi elemen telah berubah beberapa saat setelah ChromeDriver menentukan lokasi elemen, tetapi sebelum ChromeDriver benar-benar mengeluarkan klik di lokasi.

Untuk menentukan apakah ini masalah Anda, tangkap pengecualian dari klik dan segera catat lokasi dan ukuran elemen saat ini. Bandingkan dengan lokasi yang dilaporkan ChromeDriver untuk diklik dalam pengecualian dan lihat apakah lokasi tersebut berbeda. Jika demikian, Anda harus menunggu hingga elemen berhenti bergerak atau mencoba mengklik lagi. Jika tidak, laporkan bug dengan halaman pengujian kecil yang dapat digunakan untuk merekonstruksi masalah (meskipun sesekali saja memicu masalah).

ChromeDriver tidak dapat mengklik elemen yang bergerak

Fitur ini tidak didukung oleh ChromeDriver. Jika elemen pada akhirnya berhenti, tunggu hingga hal tersebut terjadi. Jika elemen tidak pernah berhenti bergerak, ChromeDriver tidak menjamin klik akan berhasil.