」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Selenium 中使用 \"span:contains(\'String\')\" 解決 InvalidSelectorException?

如何在 Selenium 中使用 \"span:contains(\'String\')\" 解決 InvalidSelectorException?

發佈於2024-11-06
瀏覽:801

How to Resolve InvalidSelectorException with \

Selenium 中的Invalid SelectorException with "span:contains('String')"

在Firefox 中使用Python 中的Selenium 時,嘗試使用CSS 選擇器「span:contains('Control panel')」尋找元素可能會導致以下錯誤:

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')"

此錯誤表明提供的CSS選擇器無效。根據Issue#987和Issue#1547,Firefox或Chrome不支援「:contains」偽類。

解決方案:

The ": contains" 偽類不是標準 CSS 選擇器,應替換為替代屬性選擇器。例如:

element = "span[attribute_name=attribute_value]"

備用XPaths:

如果屬性選擇器不是可用,您可以使用以下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']")

jQuery 替代方案:

$('span:contains("Control panel")')

注意:

瀏覽器控制台不支援CSS 選擇器,但JQuery 提供了快捷方式文檔.querySelector。因此,如果頁面上啟用了 CSS 選擇器,JQuery 可能會支援 CSS 選擇器。

版本聲明 本文轉載於:1729259896如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3