Estoy tratando de analizar el texto de este código html usando Selenium con python:

    <div class="  card card_selected" data-id="3248846777">
        <p>Hello World!</p>
    </div>

Utilizo este código:

my_class = "  card card_selected"
live_deal = browser.find_element_by_class_name(my_class)

Recibo este error :

selenium.common.exceptions.InvalidSelectorException: Message: Given css selector expression ".  card card_selected" is invalid: InvalidSelectorError: '.  card card_selected' is not a valid selector: ".  card card_selected"

Este error ocurre cuando el nombre de la clase comienza con espacios.

¿Cómo puedo manejar este error?

1
B. Okba 13 dic. 2019 a las 17:16

2 respuestas

browser.find_element_by_css_selector('[class|=" "]')

Ver más detalles aquí: https://www.w3schools.com/css/css_attribute_selectors.asp

Selector CSS [attribute|="value"]
El selector [attribute|="value"] es se utiliza para seleccionar elementos con el atributo especificado que comienza con valor específico.

2
r.ook 13 dic. 2019 a las 18:49

Podría ser más fácil de usar xpath contiene () función

//div[contains(@class,'card_selected')]
0
Valery Streltsov 13 dic. 2019 a las 14:55