"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como resolver InvalidSelectorException com "span:contains(\'String\')\" no Selenium?

Como resolver InvalidSelectorException com "span:contains(\'String\')\" no Selenium?

Publicado em 2024-11-06
Navegar:383

How to Resolve InvalidSelectorException with \

SeleniumException inválida no Selenium com "span:contains('String')"

Ao usar Selenium em Python com Firefox, tentando encontrar um elemento usando o seletor CSS "span:contains('Control panel')" pode resultar no seguinte erro:

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

Este erro indica que o seletor CSS fornecido é inválido. De acordo com a edição nº 987 e a edição nº 1547, a pseudoclasse ":contains" não é suportada pelo Firefox ou Chrome.

Solução:

O ": contém" a pseudoclasse não é um seletor CSS padrão e deve ser substituída por um seletor de atributos alternativo. Por exemplo:

element = "span[attribute_name=attribute_value]"

XPaths alternativos:

Se um seletor de atributos não for disponível, você pode usar um dos seguintes XPaths:

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

Alternativa jQuery:

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

Observação:

Seletores CSS não são suportados no console do navegador, mas JQuery fornece um atalho para document.querySelector. Como tal, JQuery pode suportar seletores CSS se estiver habilitado na página.

Declaração de lançamento Este artigo foi reimpresso em: 1729259896 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3