Selenium no extrae información usando xpath

Sep 08 2020

Estoy tratando de extraer información del sitio web de Amazon utilizando selenio. Pero no puedo raspar esa información usando xpath en selenium.

En la imagen de abajo quiero extraer la información resaltada.

Este es el código que estoy usando

try:
    path = "//div[@id='desktop_buybox']//div[@class='a-box-inner']//span[@class='a-size-small')]"
    seller_element = WebDriverWait(driver, 5).until(
        EC.visibility_of_element_located((By.XPATH, path)))
except Exception as e:
    print(e)

Cuando ejecuto este código, muestra que hay un error con seller_element = WebDriverWait(driver, 5).until( EC.visibility_of_element_located((By.XPATH, path)))pero no dice qué excepción es.

Intenté buscar en línea y descubrí que esto sucede cuando el selenio no puede encontrar el elemento en la página web.

Pero creo que el camino que he especificado es el correcto. Por favor, ayúdame.

Gracias por adelantado

[EDIT-1]

Esta es la excepción que estoy recibiendo

Message:

Respuestas

2 ArundeepChohan Sep 08 2020 at 12:37
//div[class='a-section a-spacing-none a-spacing-top-base']//span[class='a-size-small a-color-secondary']

XPath podría ser algo como esto. Puede acortar esto.

El selector de CSS podría ser y así sucesivamente.

.a-section.a-spacing-none.a-spacing-top-base
.a-size-small.a-color-secondary
1 PeterQuan Sep 08 2020 at 15:26

Creo que la razón es que la expresión xpath no es correcta.

Tome el siguiente elemento como ejemplo, significa que el intervalo tiene dos clases:

<span class="a-size-small a-color-secondary">

Entonces, span[@class='a-size-small')no funcionará.

En lugar de esto, puede usar xpath como

//span[contains(@class, 'a-size-small') and contains(@class, 'a-color-secondary')]

o cssSelector como

span.a-size-small.a-color-secondary
SwaroopHumane Sep 08 2020 at 13:13

Amazon está actualizando su contenido en función del país en el que vive, ya que hice clic en el enlace proporcionado por usted, no encontré el elemento que está buscando simplemente porque el artículo no se vende aquí en la India.

En resumen, si está sentado en la India y trata de encontrar su elemento, no está allí, sino a medida que cambia la ubicación a "Estados Unidos". está apareciendo allí.

Solución: cambiar la ubicación