pyppeteer simula la verificación deslizante manual (I)
Pyppeteer proporciona un método para deslizar el mouse, pero llamar al método de deslizamiento de pyppeteer por sí solo no puede pasar la verificación. Debe acercar la trayectoria de deslizamiento al deslizamiento manual.
A continuación, aprenderemos rápidamente cómo pyppeteer implementa el deslizamiento.
Según la combinación de los 4 métodos anteriores, puede implementar el deslizamiento.
Si el control deslizante ya está en la página, llame a page.hover(slide_id), no es necesario ser tan complicado
1. Busque el selector CSS del iframe: iframe#sufei -dialog- contenido (debe completarse de acuerdo con la situación real)
2. (debe completarse de acuerdo con la situación real)
2. Busque el nodo WebElement en el página: iframe_element = await page.J('iframe# sufei-dialog-content')
En este punto, la función hover () no se puede llamar en iframe_element porque iframe_element no es un WebElement. (), porque iframe_element es una clase ElementHandle y necesitamos una clase Frame
3. Fuerce a la clase ElementHandle a convertirse en una clase Frame: iframe =await iframe_element()
Donde x,y son las coordenadas horizontales y verticales absolutas para moverse, las opciones son un diccionario y solo hay un botón para controlar la velocidad.
Por ejemplo, si desea que el mouse se mueva 500 píxeles hacia la derecha, entonces x es la coordenada horizontal actual + 500 e y es la coordenada vertical actual, sin cambios.
Es un poco problemático trabajar con las abscisas y ordenadas actuales. Algunas personas en Internet se deslizan así:
await page.mouse(10000,0), lo que significa mover el. mouse horizontalmente Muévase a 10000 y verticalmente a 0. No puede moverse verticalmente al deslizarse, por lo que solo puede ver el efecto del movimiento horizontal. Si no agrega el tercer parámetro, el valor predeterminado puede ser un paso {'steps':1}
Nota: Las coordenadas aquí son las mismas que los valores de píxeles y la esquina superior izquierda es el punto inicial. punto (0,0)
pasos significa dividir en varios pasos. Cuanto mayor sea el número de pasos, más lenta será la velocidad de deslizamiento. (En el código fuente, el número de pasos se refiere al número de veces que se mueve al segmento x, y especificado, y cada vez que toma una cierta cantidad de tiempo comenzar a deslizarse, el número de pasos se puede considerar como el velocidad de deslizamiento)
En este punto, hemos completado la función de verificación de deslizamiento. Por supuesto, aún no es perfecta, pero las funciones básicas se han completado. En la siguiente sección, presentaremos el control del deslizamiento. trayectoria y simulando deslizamiento manual.
Nota 1: El pyppeteer aquí involucra la página y el iframe. Las funciones de Peppeteer se implementan con el marco como unidad básica. Las funciones de la página están disponibles en el iframe. Cuando la página ejecuta la función, primero llamará a frame = self. mainFrame antes de ejecutar la función. mainFrame es la función más importante. mainFrame es el marco más externo
Nota 2: el objeto del mouse es exclusivo de la página/objeto de marco principal y no se puede llamar en un submarco, es decir, un iframe.
Seguimiento: pyppeteer simula la verificación manual de diapositivas (II)