Pruebas automatizadas web (aprendizaje básico, parte 2)

mouse, eventos de teclado

1. Ratón

1. 1Cadenas de acción

        ActionChains es un método de bajo nivel para automatizar interacciones como el movimiento del mouse, las acciones de los botones del mouse, las pulsaciones de teclas y las interacciones del menú contextual. Esto es útil para realizar acciones más complejas, como pasar el mouse por encima y arrastrar y soltar.
        ActionChains se puede usar en cadenas:
        menu = driver.find_element_by_css_selector(".nav")
        hidden_submenu = driver.find_element_by_css_selector(".nav#submenu1")
        ActionChains(driver).move_to_element(menu).click(hidden_submenu).per form ()
        o las acciones pueden ponerse en cola una por una y luego ejecutarse:
        menu = driver.find_element_by_css_selector(".nav")
        hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1")
        actions = ActionChains(driver)
        actions.move_to_element(menu)
        actions. haga clic en (hidden_submenu)
        acciones.

1.2 Uso básico

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains  # 引入 ActionChains 类
 
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
 
# 定位到要右击的元素
right_click = driver.find_element_by_id("xxxx")
 
# 对定位到的元素执行鼠标右键操作
ActionChains(driver).context_click(right_click).perform()#链式写法
# 分步写法
actions = ActionChains(driver)#调用 ActionChains()类,将浏览器驱动driver作为参数传入。

actions.click()# 装载单击动作

actions.context_click()# 装载右击动作,用于模拟鼠标右击操作,在调用时需要指定元素定位。

actions.perform()# 执行所有被装载的动作,可以理解为是对整个操作的提交动作。

1.3 Resumen de la API

  • perform(self): ---Ejecutar todas las acciones en la cadena
  • reset_actions(self): ---Borrar las acciones almacenadas en el control remoto
  • click(self, on_element=None): ---Haga clic en el botón izquierdo del mouse
  • click_and_hold(self, on_element=None): --Haga clic con el botón izquierdo del mouse sin soltarlo
  • context_click(self, on_element=None): --- clic con el botón derecho del ratón
  • double_click(self, on_element=None): --- Haga doble clic con el botón izquierdo del mouse
  • drag_and_drop(self, source, target): ---Arrastra hasta un elemento y suéltalo, donde source: el elemento de origen arrastrado por el mouse, target: el elemento de destino liberado por el mouse.
  • drag_and_drop_by_offset(self, source, xoffset, yoffset): ---Arrastrar a una determinada coordenada y soltar
  • key_down(self, value, element=None): ---Se presiona una tecla del teclado
  • key_up(self, valor, elemento=Ninguno): --- Liberar una tecla
  • move_by_offset(self, xoffset, yoffset): ---El mouse se mueve a una cierta coordenada
  • move_to_element(self, to_element): ---El mouse se mueve a un elemento
  • move_to_element_with_offset(self, to_element, xoffset, yoffset): --- Mover a la posición desde un elemento (esquina superior izquierda)
  • release(self, on_element=None): --- Suelte el mouse sobre un elemento
  • send_keys(self, *keys_to_send): ---Envía ciertos valores al elemento actualmente enfocado
  • send_keys_to_element(self, elemento, *keys_to_send): ---Enviar algún valor al elemento especificado

2. Teclado

from selenium.webdriver.common.keys import Keys#引入包

2.1 Teclas accesorias

  • key_down #se presiona una tecla del teclado

  • key_up # libera una tecla

  • send_keys #Enviar algún valor al elemento de enfoque actual

  • send_keys_to_element #Enviar algún valor al elemento especificado

2.2 teclas

#输入框输入内容
driver.find_element_by_id("kw").send_keys("sanmu1")
#删除多输入的一个1
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
#输入空格键+“szj”
driver.find_element_by_id("kw").send_keys(Keys.SPACE)
driver.find_element_by_id("kw").send_keys(u"szj")
#ctrl+a 全选输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
#ctrl+x 剪切输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
#ctrl+v 粘贴内容到输入框
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'v')
#通过回车键盘来代替点击操作
driver.find_element_by_id("su").send_keys(Keys.ENTER)
#回退键 ESC
driver.find_element_by_id("su").send_keys(Keys.ESCAPE)
#制表键(Tab)
driver.find_element_by_id("su").send_keys(Keys.TAB) 
#键盘 F1
driver.find_element_by_id("su").send_keys(Keys.F1) 

Supongo que te gusta

Origin blog.csdn.net/m0_58807719/article/details/130044281
Recomendado
Clasificación