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

DDD
Lepaskan: 2024-10-18 22:02:03
asal
661 orang telah melayarinya

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]"
Salin selepas log masuk

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']")
    Salin selepas log masuk
  • Menggunakan mengandungi():

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

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

Penggunaan jQuery

Selain itu, anda boleh menggunakan jQuery dengan sintaks berikut:

$('span:contains("Control panel")')
Salin selepas log masuk

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!

sumber:php
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!