Rastreador de selenio y pitón (cuatro) [comportamiento del ratón (objetivo 3)]

Clic del mouse de selenio

Los clics del mouse se pueden dividir en

  1. Clic clic()
  2. Haga doble clic en double_click ()
  3. Clic derecho context_click ()
  4. Haga clic en el botón izquierdo del mouse sin soltar click_and_hold ()
    Ahora tome el ejemplo de Baidu como ejemplo
from selenium import webdriver
from selenium.webdriver.common.by import By

drive=webdriver.Chrome()
drive.get('https://www.baidu.com/')
SubmitBut=drive.find_element(By.XPATH,'//input[@type="submit" and @value="百度一下"]')
SubmitBut.click()

Ahora use el mouse
1. Importe la biblioteca relevante
2. Cree el objeto del mouse
3. Implemente la operación relevante
Ahora usamos el código para implementar dicha función (haga clic derecho en la pestaña de búsqueda de Baidu)
Inserte la descripción de la imagen aquí

el código se muestra a continuación

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains#####
drive=webdriver.Chrome()
drive.get('https://www.baidu.com/')
SubmitBut=drive.find_element(By.XPATH,'//input[@type="submit" and @value="百度一下"]')
action_mouse=ActionChains(drive)######
action_mouse.move_to_element(SubmitBut).context_click().perform()######

Inserte la descripción de la imagen aquí
Hazlo hecho

Movimiento del raton

drag_and_drop (A, B) arrastra A a B

drag_and_drop_by_offset (source, x, y) Arrastra A a una posición determinada

move_by_offset (x, y) Mueve el mouse desde la posición actual a una determinada coordenada

move_to_element (to_element) Mueve el mouse a un elemento

move_to_element_with_offset (A, x, y) para moverse a la posición de la distancia desde el elemento A (la coordenada de la esquina superior izquierda)

perform () realiza todas las acciones en la cadena

release (on_element = None) Suelta el botón izquierdo del ratón en la posición de un elemento (usado con clic_and_hold ())

send_keys ('python') Envía 'python' a través del teclado para ingresar caracteres y simular presionar las teclas de letras

send_keys_to_element (At, 'python') envía'python 'a A

Aquí hay algunos ejemplos, los otros métodos de operación son los mismos
(porque no puedo encontrar el sitio web correspondiente para dar un ejemplo, ahora use un pseudo código para demostrar y escriba un ejemplo más adelante).

 
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

 
driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.maximize_window()
driver.get('URL')
 
dragger = driver.find_element_by_id('dragger') # 被拖拽元素

A = driver.find_element_by_xpath('') # 目标A
B = driver.find_element_by_xpath('') # 目标B

 
action = ActionChains(driver)
action.drag_and_drop(dragger, A).perform() # 移动dragger到目标A

action.click_and_hold(dragger).release(A).perform() # 效果与上句相同,也能起到移动效果

action.click_and_hold(dragger).move_to_element(A).release().perform() # 效果与上两句相同,也能起到移动的效果

# action.drag_and_drop_by_offset(dragger, 400, 150).perform() # 4.移动到指定坐标
action.click_and_hold(dragger).move_by_offset(400, 150).release().perform() #与上一句相同,移动到指定坐标

Alerta de uso frecuente

1. drag_and_drag_by_offset (A, x, y) se utiliza generalmente para la verificación del deslizador
2. La coordenada de origen de move_by_offset (x, y) es que el punto final del movimiento anterior es el origen de la próxima vez, es decir, las coordenadas tienen un efecto aditivo.

Eventos de teclado

Esto se combina con el mouse y, a veces, es necesario utilizar ciertas teclas, como la tecla 'espacio'.
key_down (valor, elemento = Ninguno) Presione una tecla en un teclado

key_up (valor, elemento = Ninguno) suelta una clave

El siguiente es un ejemplo específico. (Código falso)

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
 
driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.maximize_window()
driver.get('URL')
 
dragger = driver.find_element_by_id('dragger') # 被拖拽元素

A = driver.find_element_by_xpath('') # 目标A
INPUT = driver.find_element_by_xpath('') # 目标B
action = ActionChains(driver)
action.key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform() # ctrl+a
action.key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform() # ctrl+c
action.key_down(Keys.CONTROL,INPUT).send_keys('v').key_up(Keys.CONTROL).perform() # ctrl+v
action.move_to_element(INPUT).key_down(Keys.CONTROL).send_keys('v')key_up(Keys.CONTROL).perform()#和上一个一样  ctrl+v

Ejemplo real

El ejemplo del aterrizaje de un francotirador de vida o muerte (no te rías en serio)
Vamos a demostrar cómo obtener las coordenadas

Inserte la descripción de la imagen aquí
el código se muestra a continuación;

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains
driver=webdriver.Chrome()
driver.maximize_window()

enter_url='https://ssjj.4399.com/'
driver.get(enter_url)

actions=ActionChains(driver)

actions.move_by_offset(550,370).click().send_keys('865989840')
actions.move_by_offset(-550,-370)#归位

actions.move_by_offset(550,400).click().send_keys('mima')
actions.move_by_offset(-550,-400)

actions.move_by_offset(530,475).click()
actions.move_by_offset(-530,-475).perform()

actions.move_by_offset(400,350).click().perform()

Efecto
Inserte la descripción de la imagen aquí
(lo firmé por cierto. Chrome no es compatible con flash ahora. Si no hay ninguna modificación especial, no puede ejecutar flash automáticamente. Por supuesto, puede modificarlo. Busque tutoriales en algunas cuentas públicas de WeChat, que no se explican en este edificio. )
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/FUTEROX/article/details/108501045
Recomendado
Clasificación