Rumah >hujung hadapan web >tutorial css >Mengapa Selenium Melemparkan InvalidSelectorException dengan 'span:contains('Control panel')'?

Mengapa Selenium Melemparkan InvalidSelectorException dengan 'span:contains('Control panel')'?

Patricia Arquette
Patricia Arquetteasal
2024-12-14 17:58:11607semak imbas

Why Does Selenium Throw an InvalidSelectorException with

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:

  • Menggunakan "text()":
element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
  • Menggunakan "contains()":
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']")

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!

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