Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

173
Vistas
Python Selenium NoSuchElement al intentar raspar web

Sé que esta pregunta se ha hecho antes, pero he pasado por muchas de las soluciones de desbordamiento de pila y nada parece funcionar para mí. Estoy intentando raspar un sitio web para obtener datos de bienes raíces. Puedo hacer clic en la página de inicio de sesión y en una segunda página, pero cuando llego a la tercera página, no puedo hacer clic en un enlace.

Bloque HTML:

 <div id="m_wm_w6_m_pnlContent" class="css_content wgt_content"> <table width="100%"> <tbody><tr> <td><a id="m_wm_w6_m_lv_ctrl0_m_lnkWatch" href="javascript:__doPostBack(&#39;m_wm$w6$m_lv$ctrl0$m_lnkWatch&#39;,&#39;&#39;)" style="white-space:nowrap; font-size:11px;">New Listing (186)</a> </td> <td width="50%"><div style="background-color:#008770;width:100%;height:12px;border:solid 1px #C0C0C0;"></div></td> </tr>

Quiero hacer click en el enlace usando selenio para la etiqueta "New Listing" con href="javascript:__doPostBack...

Mi código:

 driver = webdriver.Chrome(ChromeDriverManager().install()) driver.get(url + login) driver.find_element_by_id('clareity').send_keys(username) driver.find_element_by_id('security').click() driver.find_element_by_id('security').send_keys(password) driver.find_element_by_id('loginbtn').click() driver.implicitly_wait(5) driver.find_element_by_id('appColumn386').click() #WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//html/body/form/div[3]/div[7]/table/tbody/tr/td[3]/div/div[2]/div/div[2]/table/tbody/tr[1]/td[1]/a"))).click() #WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[@id='m_wm_w6_m_lv_ctrl0_m_lnkWatch']"))).click() #WebDriverWait(driver, 10).until(EC.staleness_of(driver.find_element_by_xpath("//html/body/form/div[3]/div[7]/table/tbody/tr/td[3]/div/div[2]/div/div[2]/table/tbody/tr[1]/td[1]/a"))) #driver.find_element_by_xpath("//html/body/form/div[3]/div[7]/table/tbody/tr/td[3]/div/div[2]/div/div[2]/table/tbody/tr[1]/td[1]/a").click()

El código comentado es algunas de las soluciones que probé y no parecían funcionar. Recibo el error "NoSuchElement" a pesar de que cuando verifico las herramientas de desarrollo de Chrome, aparece el elemento. Incluso probé ambos XPaths de las dev tools de desarrollo, pero aún no puedo encontrarlos. También probé time.sleep() para permitir que la página se cargue. Es posible que me esté perdiendo algo muy fácil aquí, pero he estado atascado por un tiempo, se agradece cualquier ayuda :)

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Dado que el text se encuentra between a tag , le recomiendo que utilice LINK_TEXT como primera opción.

 WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "New Listing (186)"))).click()

o

 WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "New Listing"))).click()

PD: asegúrese de no estar en any new tab or windows. ya que has mencionado que estás en la 3rd page.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda