Rumah >pembangunan bahagian belakang >Tutorial Python >Cara Menyelesaikan InvalidSelectorException dengan \'span:contains(\'string\')\'

Cara Menyelesaikan InvalidSelectorException dengan \'span:contains(\'string\')\'

DDD
DDDasal
2024-10-18 22:02:03764semak imbas

How to Resolve InvalidSelectorException with

InvalidSelectorException dengan "span:contains('string')"

Apabila cuba mencari elemen dengan pemilih CSS "span:contains('Control panel') ", InvalidSelectorException ditemui, memaparkan ralat: "Diberi ungkapan pemilih css "span:contains('Control panel')" adalah tidak sah".

Seperti yang dijelaskan dalam Isu #987 dan #1547, :contains pseudo-class tidak termasuk dalam spesifikasi CSS dan tidak mempunyai sokongan dalam kedua-dua Firefox dan Chrome. Kelas pseudo ini unik kepada Enjin Pemilih Sizzle yang digunakan oleh Selenium 1.0. Walau bagaimanapun, WebDriver memilih untuk tidak memasukkan pemilih CSS Sizzle, menyebabkan ketidakkonsistenan ini.

Untuk menyelesaikan isu ini dengan berkesan, gunakan atribut alternatif bagi tag:

element = "span[attribute_name=attribute_value]"

Penyelesaian Alternatif

Untuk mencari elemen menggunakan Pokok DOM yang disediakan, pertimbangkan pilihan XPath berikut:

  • Menggunakan text():

    element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
  • Menggunakan mengandungi():

    element = my_driver.find_element_by_xpath("//span[contains(.,'Control panel')]")
  • Menggunakan normalize-space():

    element = my_driver.find_element_by_xpath("//span[normalize-space()='Control panel']")

Penggunaan jQuery

Selain itu, anda boleh menggunakan jQuery dengan sintaks berikut:

$('span:contains("Control panel")')

Pemerhatian Yang Diperhatikan

Mengikut pandangan @FlorentB, pemilih CSS tidak disokong oleh konsol, namun jQuery menyediakan sokongan. Sintaks '$(...)' dalam konsol mewakili notasi trengkas untuk 'document.querySelector', yang akan digantikan oleh jQuery apabila ia dimasukkan ke dalam halaman.

Atas ialah kandungan terperinci Cara Menyelesaikan InvalidSelectorException dengan \'span:contains(\'string\')\'. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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