Bagaimana untuk Menyelesaikan InvalidSelectorException dengan \'span:contains(\'String\')\' dalam Selenium?

Mary-Kate Olsen
Lepaskan: 2024-10-18 21:58:30
asal
512 orang telah melayarinya

How to Resolve InvalidSelectorException with

Invalid SelectorException dalam Selenium dengan "span:contains('String')"

Apabila menggunakan Selenium dalam Python dengan Firefox, cuba mencari elemen menggunakan pemilih CSS "span:contains('Control panel')" boleh mengakibatkan ralat berikut:

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

Ralat ini menunjukkan bahawa pemilih CSS yang disediakan adalah tidak sah. Menurut Isu#987 dan Isu#1547, kelas pseudo ":contains" tidak disokong oleh Firefox atau Chrome.

Penyelesaian:

":contains" pseudo-class bukanlah pemilih CSS standard dan harus digantikan dengan pemilih atribut alternatif. Contohnya:

<code class="python">element = "span[attribute_name=attribute_value]"</code>
Salin selepas log masuk

Xpath Ganti:

Jika pemilih atribut tidak tersedia, anda boleh menggunakan salah satu daripada XPath berikut:

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

jQuery Alternatif:

<code class="javascript">$('span:contains("Control panel")')</code>
Salin selepas log masuk

Nota:

Pemilih CSS tidak disokong dalam konsol penyemak imbas, tetapi JQuery menyediakan jalan pintas untuk document.querySelector. Oleh itu, JQuery mungkin menyokong pemilih CSS jika ia didayakan pada halaman.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan InvalidSelectorException dengan \'span:contains(\'String\')\' dalam Selenium?. 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
Artikel terbaru oleh pengarang
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!