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

894
Vistas
Usando las teclas de flecha en Chrome Selenium popup Python

Me gustaría usar la barra de desplazamiento en las ventanas emergentes de la página siguiente. Si hace clic en cualquier producto en la página, se abrirá una ventana emergente donde puede agregar elementos adicionales. Estoy tratando de usar Keys.send_keys(Keys.ARROW_DOWN) para desplazarme hacia abajo en la ventana emergente, pero no puedo encontrar el elemento de la barra de desplazamiento en Chrome. Intenté moverme a elementos usando otros métodos sin éxito, así que me gustaría probar con las teclas de flecha.

https://www.just-eat.co.uk/restaurants-mcdonalds-victorialondon/menu

Me las arreglé para usar las teclas de flecha en las ventanas emergentes en FireFox pero no puedo replicar en Chrome.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Puede intentar encontrar un elemento dentro de la ventana emergente y luego usar ese elemento para desplazarse. El truco aquí es asegurarse de que el elemento sea enfocable para que pueda usarlo para desplazarse con las teclas de flecha. Los elementos enfocables son los que pueden recibir eventos de teclado , los elementos que tienen una función de enfoque declarada en su interior. Dado que la documentación de w3c http://www.w3.org/TR/DOM-Level-2-HTML/html.html no se actualiza desde hace mucho tiempo, no tenemos una lista de elementos enfocables, pero algunos de los los elementos enfocables según él son HTMLInputElement, HTMLSelectElement, HTMLTextAreaElement, HTMLIFrameElement, HTMLButtonElement, HTMLAnchorElement y cualquier elemento con un tabindex.

A continuación se muestra un fragmento de código de muestra para su referencia.

 from selenium.webdriver.common.keys import Keys focusable_element_in_popup = driver.find_element_by_id('id_of_the_element') focusable_element_in_popup.send_keys(Keys.ARROW_DOWN) #or you can use //a magic using xpath to return you the any first link on popup, like below #driver.find_element_by_xpath('//div[@class="some-class"]//a')

o también puede usar move_to_element o scrollIntoView como se muestra a continuación. Si esto no funciona como se esperaba, intente agregar actions.click() después de move_to_element para enfocarlo.

 from selenium.webdriver.common.action_chains import ActionChains element = driver.find_element_by_id("my-id") actions = ActionChains(driver) actions.move_to_element(element).perform() #actions.move_to_element(element) #actions.click() #actions.send_keys("SOME DATA") #actions.perform() #or driver.execute_script("arguments[0].scrollIntoView();", element)

Es posible que se requiera algo de prueba y error al principio para hacerlo bien para su caso de uso.

over 4 years ago · Santiago Trujillo Denunciar

0

Me gusta usar JavaScript para desplazarme hacia abajo cuando uso Selenium. Es mucho más confiable desde mi experiencia.

Prueba lo siguiente:

 X = 500 DRIVER_NAME.execute_script("window.scrollBy(0, X)")

Otra opción es evitar la necesidad de desplazarse en primer lugar inyectando CSS en la página web. Puede escribir varias líneas de código CSS que harían que la fuente de la ventana emergente y la altura de la línea fueran muy pequeñas; de esta manera, podrá encajar todo en la pantalla sin desplazarse.

Así es como se vería:

 new_css = "body{background-color: white;}" DRIVER_NAME.executeScript("$('<style type=\"text/css\">new_css</style>').appendTo('html > head');");

Una de las dos soluciones anteriores debería resolver su problema.

over 4 years ago · Santiago Trujillo Denunciar

0

No estoy seguro de qué ha intentado ya y qué está fallando, pero dado que mencionó la presencia de una ventana emergente, debe asegurarse de que está operando en la ventana correcta (es decir, emergente).

Consulte aquí para obtener más detalles: enfocar una ventana diferente

Una vez que haya verificado que está operando en la ventana correcta, las respuestas anteriores deberían funcionar. También puede encontrar este enlace útil para desplazarse por una página web

Por último, pero no menos importante, siempre es recomendable compartir un ejemplo reproducible de su código para ayudar a otros a ayudarlo;) La mejor de las suertes.

over 4 years ago · Santiago Trujillo 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