Rumah >hujung hadapan web >tutorial css >Mengapa Pemilih `span:contains('string')` Selenium Gagal, dan Bagaimana Saya Boleh Membetulkannya?
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')"
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]"
Gunakan XPath, yang menyokong text(), contains(), dan normalize-space() kaedah:
element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
Gunakan jQuery, yang menyokong pemilih CSS:
$('span:contains("Control panel")')
Trivia:
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!