Actualmente estoy usando selenium webdriver para analizar a través de la página de amigos de usuarios de Facebook y extraer todos los identificadores del script AJAX. Pero necesito desplazarme hacia abajo para obtener todos los amigos. ¿Cómo puedo desplazarme hacia abajo en Selenium? Estoy usando python
python
selenium
selenium-webdriver
automated-tests
usuario2523364
fuente
fuente
Respuestas:
Puedes usar
donde Y es la altura (en un monitor fullhd es 1080). (Gracias a @lukeis)
También puedes usar
para desplazarse al final de la página.
Si desea desplazarse a una página con carga infinita , como las de redes sociales, Facebook, etc. (gracias a @Cuong Tran)
otro método (gracias a Juanse) es seleccionar un objeto y
fuente
scrollHeight
qué significa y cómo funciona en general?Si desea desplazarse hacia abajo hasta la parte inferior de la página infinita (como linkedin.com ), puede usar este código:
Referencia: https://stackoverflow.com/a/28928684/1316860
fuente
SCROLL_PAUSE_TIME
varía, me lleva alrededor de 2 segundos.Puede usar
send_keys
para simular una pulsación de teclaEND
(oPAGE_DOWN
) (que normalmente desplaza la página):fuente
mismo método que se muestra aquí :
en python solo puedes usar
(Y es la posición vertical a la que desea desplazarse)
fuente
Esto ayudó cuando estaba tratando de acceder a un 'li' que no era visible.
fuente
location_once_scrolled_into_view
debería llamarse sin()
es quelocation_once_scrolled_into_view
es un Pythonproperty
. vea el código fuente aquí: selenium / webelement.py en d3b6ad006bd7dbee59f8539d81cee4f06bd81d64 · SeleniumHQ / seleniumPara mi propósito, quería desplazarme más hacia abajo, teniendo en cuenta la posición de las ventanas. Mi solución fue similar y utilizada
window.scrollY
que irá a la posición actual de desplazamiento y + 200
fuente
Así es como se desplaza hacia abajo en la página web:
fuente
La forma más fácil que encontré para resolver ese problema fue seleccionar una etiqueta y luego enviar:
¡Espero que funcione!
fuente
Ninguna de estas respuestas funcionó para mí, al menos no para desplazarse hacia abajo en una página de resultados de búsqueda de Facebook, pero encontré después de muchas pruebas esta solución:
fuente
SCROLL_PAUSE_TIME
en stackoverflow.com/a/27760083/7326714 a2
, funciona muy bien y se desplaza hacia abajo a 100 veces más rápido.Al trabajar con youtube, los elementos flotantes dan el valor "0" como la altura del desplazamiento, así que en lugar de usar "return document.body.scrollHeight", intente usar este "return document.documentElement.scrollHeight" y ajuste el tiempo de pausa de desplazamiento según su internet De lo contrario, se ejecutará solo una vez y luego se romperá después de eso.
fuente
Estaba buscando una manera de desplazarme por una página web dinámica y detenerme automáticamente una vez que se llega al final de la página, y encontré este hilo.
La publicación de @Cuong Tran , con una modificación principal, fue la respuesta que estaba buscando. Pensé que otros podrían encontrar útil la modificación (tiene un efecto pronunciado sobre cómo funciona el código), de ahí esta publicación.
La modificación consiste en mover la declaración que captura la última altura de la página dentro del bucle (para que cada verificación se compare con la altura de la página anterior).
Entonces, el código a continuación:
(Hay otra modificación, donde la declaración de ruptura está dentro de otra condición (en caso de que la página se 'pegue') que se puede eliminar).
fuente
Este código se desplaza hacia abajo pero no requiere que esperes cada vez. Se desplazará continuamente y luego se detendrá en la parte inferior (o tiempo de espera)
Esto es mucho más rápido que esperar 0.5-3 segundos cada vez por una respuesta, cuando esa respuesta podría tomar 0.1 segundos
fuente
desplazarse cargando páginas. Ejemplo: medio, quora, etc.
fuente
si desea desplazarse dentro de una vista / marco particular (WebElement), lo que solo necesita hacer es reemplazar "cuerpo" con un elemento particular dentro del cual desea desplazarse. obtengo ese elemento a través de "getElementById" en el siguiente ejemplo:
este es el caso en YouTube , por ejemplo ...
fuente
La
ScrollTo()
función ya no funciona. Esto es lo que usé y funcionó bien.fuente
Está funcionando para mi caso.
fuente