es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Selenium Python: Intentando obtener un iframe dentro de otro iframe.

Estoy intentando cambiar el enfoque de Selenium hacia el contenido dentro de un iframe que está dentro de otro iframe. Mi prueba de Selenium parece funcionar hasta ahora. Sin embargo, hay otro iframe dentro de ese iframe que quiero obtener, pero no estoy seguro cómo hacerlo.

Aquí está el marcado (segundo iframe resaltado):

Esta es mi prueba hasta ahora (que funciona, simplemente no estoy seguro de cómo obtener el segundo iframe dentro del primer iframe):

(Se omite el código y la salida en markdown)

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para obtener el segundo iframe dentro del primer iframe, deberá cambiar el enfoque al primer iframe y luego cambiar el enfoque al segundo iframe usando el mismo enfoque que al cambiar al primer iframe.

    Aquí está el código actualizado para cambiar el enfoque al segundo iframe:

    # cambia el enfoque de Selenium al primer iframe
    iframe1 = self.browser.switch_to.frame(carousel)
    
    # cambia el enfoque de Selenium al segundo iframe
    iframe2 = self.browser.switch_to.frame(self.browser.find_element_by_css_selector('#chart'))
    
    # realiza acciones en elementos dentro del segundo iframe
    element = iframe2.find_element_by_css_selector('.mi-elemento')
    element.click()
    
    # vuelve al contenido predeterminado
    self.browser.switch_to.default_content()
    

    En este código, primero cambiamos el enfoque al primer iframe usando el método switch_to.frame() y almacenamos el objeto iframe en la variable iframe1. Luego podemos usar el objeto iframe1 para encontrar el segundo iframe usando el método find_element_by_css_selector() y cambiar el enfoque hacia él usando el método switch_to.frame() nuevamente. Una vez que estamos dentro del segundo iframe, podemos realizar acciones en los elementos que deseamos. Finalmente, volvemos al contenido predeterminado usando el método switch_to.default_content() para asegurarnos de que las acciones posteriores se realicen en la página principal.

Comments are closed.