Rumah > hujung hadapan web > tutorial css > Mengapa Pemilih `span:contains('string')` Selenium Gagal, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Pemilih `span:contains('string')` Selenium Gagal, dan Bagaimana Saya Boleh Membetulkannya?

Patricia Arquette
Lepaskan: 2024-12-13 13:44:10
asal
249 orang telah melayarinya

Why Does Selenium's `span:contains('string')` Selector Fail, and How Can I Fix It?

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

Apabila cuba mencari elemen menggunakan pemilih CSS dengan span:contains('string' ) dalam Python Selenium untuk Firefox, anda mungkin menghadapi ralat:

selenium.common.exceptions.InvalidSelectorException: Message: Given css selector expression "span:contains('string')" is invalid: InvalidSelectorError: 'span:contains('string')' is not a valid selector: "span:contains('string')"
Salin selepas log masuk

Isu ini timbul kerana the :contains pseudo-class tidak disokong oleh spesifikasi CSS mahupun secara asli oleh Firefox atau Chrome. Ia eksklusif untuk Enjin Pemilih Selenium 1.0 Sizzle, tetapi WebDriver tidak menyokong pemilih sedemikian.

Penyelesaian Alternatif:

  • Gunakan pemilih atribut:

    element = "span[attribute_name=attribute_value]"
    Salin selepas log masuk
  • Gunakan XPath, yang menyokong text(), contains(), dan normalize-space() kaedah:

    element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
    Salin selepas log masuk
  • Gunakan jQuery, yang menyokong pemilih CSS:

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

Trivia:

  • Pemilih CSS bukan disokong secara asli dalam konsol penyemak imbas, tetapi pintasan $() jQuery mengatasi document.querySelector untuk mendayakan penggunaannya apabila jQuery hadir pada halaman.

Atas ialah kandungan terperinci Mengapa Pemilih `span:contains('string')` Selenium Gagal, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan