Rumah >hujung hadapan web >tutorial css >Mengapa Selenium Melemparkan InvalidSelectorException dengan 'span:contains('Control panel')'?
Selenium InvalidSelectorException dengan "span:contains('Control panel')"
Mencuba mencari elemen menggunakan pemilih CSS "span: mengandungi('Control panel')" dalam Selenium Python boleh mengakibatkan InvalidSelectorException. Ralat ini berlaku kerana kelas pseudo "mengandungi" tidak dikenali oleh Firefox atau Chrome.
Spesifikasi CSS tidak termasuk kelas pseudo ":contains". Oleh itu, ia tidak disokong oleh pelayar yang mematuhi standard. Selain itu, WebDriver tidak menyokong enjin pemilih "Sizzle", yang membenarkan penggunaan ":contains" dalam Selenium 1.0.
Penyelesaian Alternatif
Sebaliknya " :contains", pertimbangkan untuk menggunakan atribut tag untuk mengenal pasti elemen:
element = "span[attribute_name=attribute_value]"
Sebagai alternatif, gunakan ungkapan XPath:
element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
element = my_driver.find_element_by_xpath("//span[contains(.,'Control panel')]")
element = my_driver.find_element_by_xpath("//span[normalize-space()='Control panel']")
Menggunakan jQuery
jQuery menyediakan penyelesaian:
$('span:contains("Control panel")')
Atas ialah kandungan terperinci Mengapa Selenium Melemparkan InvalidSelectorException dengan 'span:contains('Control panel')'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!