Masalah klik

Error 'Elemen tidak dapat diklik'

Mengklik ChromeDriver berfungsi dengan menyimulasikan klik mouse di tengah rect klien pertama elemen (atau membatasi rect klien jika tidak memiliki rect klien pertama). Cara termudah untuk mengetahui di mana ChromeDriver mencoba mengklik 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 pada gambar di bawah. ChromeDriver akan mencoba mengklik di tengah jalan yang pertama.

Jika ChromeDriver menampilkan error 'Element is not clickable', kemungkinan besar karena lokasi tersebut sebenarnya tidak dapat diklik oleh pengguna. Untuk menguji, tempatkan kursor di tengah rect klien pertama dan lihat apakah lokasi tersebut dapat diklik.

Dalam kasus di atas, pengujian mencoba mengklik elemen anchor. Dalam kasus ini, anchor tidak dapat diklik; hanya gambar turunan yang dapat diklik. Karena gaya margin-bottom pada elemen gambar, bagian tengah elemen anchor berada di luar batas gambar yang dapat diklik, sehingga ChromeDriver menampilkan error. Untuk informasi selengkapnya tentang cara menentukan pemosisian/ukuran ditentukan, 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:

  • mengklik anchor yang elemen turunan yang dapat diklik tidak berada dalam batas anchor (seperti di atas)
  • mengklik elemen sepenuhnya atau sebagian di bawah elemen lain
  • mengklik elemen di balik layar saat overlay tetap ada (elemen akan di-scroll hingga terlihat, tetapi dapat di-scroll di bawah overlay tetap)
  • klik elemen yang tidak dapat diklik di tengah (misalnya beberapa jenis elemen SVG konveks)

Masalah ini sering kali dapat diatasi dengan mengklik turunan dari elemen yang diberikan, dengan menghapus atau menyembunyikan elemen pemblokiran secara terprogram, dengan 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 waktu 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 ke dalam log. Bandingkan dengan lokasi yang dilaporkan ChromeDriver yang coba diklik dalam pengecualian dan lihat apakah keduanya berbeda. Jika demikian, Anda harus menunggu hingga elemen berhenti bergerak atau mencoba mengklik lagi. Jika tidak, laporkan bug melalui halaman pengujian kecil yang dapat digunakan untuk mereproduksi masalah Anda (meskipun hanya sesekali memicu masalah).

ChromeDriver tidak dapat mengklik elemen yang bergerak

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