Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Saya Mendapat 'selenium.common.exceptions.NoSuchElementException' Apabila Menggunakan Selenium dengan Chrome?

Mengapa Saya Mendapat 'selenium.common.exceptions.NoSuchElementException' Apabila Menggunakan Selenium dengan Chrome?

Susan Sarandon
Lepaskan: 2024-12-27 09:55:10
asal
788 orang telah melayarinya

Why Am I Getting a

"selenium.common.exceptions.NoSuchElementException" Apabila Menjalankan Selenium pada Chrome

"NoSuchElementException" Selenium berlaku apabila ia gagal untuk mengesan elemen dalam DOM HTML. Dalam kes ini, anda menghadapi ralat ini semasa menggunakan Chrome untuk memainkan QWOP menggunakan Selenium.

Sebab

Kod Selenium yang anda berikan menggunakan "find_element_by_id" untuk mencari elemen "window1". Walau bagaimanapun, pencari ini mungkin tidak mengenal pasti secara unik elemen dalam DOM, yang membawa kepada "NoSuchElementException."

Penyelesaian

Untuk menyelesaikan isu ini, anda boleh menggunakan strategi pencari yang lebih khusus, seperti :

  • XPath: //canvas[@id='window1']
  • Pemilih CSS: canvas#window1

Selain itu, pastikan elemen itu boleh dilihat dan dalam port pandangan sebelum cuba mencarinya. Jika perlu, gunakan WebDriverWait dengan keadaan yang dijangkakan seperti element_to_be_clickable untuk menunggu elemen boleh diklik sebelum berinteraksi dengannya.

Kes Khusus Chrome

Dalam kes khusus ini, anda perlu menunggu sehingga Kanvas "window1" boleh diklik sebelum mengklik padanya:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//canvas[@id='window1']"))).click()
Salin selepas log masuk

Tambahan Pertimbangan

  • Keterlihatan Elemen: Elemen mungkin tersembunyi atau di luar skrin. Pastikan ia boleh dilihat dan dalam port pandangan.
  • IFrames: Semak sama ada elemen terletak dalam iframe. Jika ya, anda perlu bertukar kepada bingkai yang sesuai dahulu.
  • Masa: Elemen mungkin tidak hadir dalam DOM serta-merta. Gunakan WebDriverWait dengan keadaan jangkaan yang sesuai untuk menunggu kehadiran atau keterlihatan elemen.

Atas ialah kandungan terperinci Mengapa Saya Mendapat 'selenium.common.exceptions.NoSuchElementException' Apabila Menggunakan Selenium dengan Chrome?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan