Web自动化测试(基础学习篇二)

鼠标,键盘事件

1.鼠标

1. 1ActionChains

        ActionChains是一种低级别的自动化交互方法,例如鼠标移动,鼠标按钮操作,按键操作和上下文菜单交互。这对于执行更复杂的操作非常有用,例如悬停和拖放。
        ActionChains可以用于链式:
        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).perform()
        或者操作可以逐个排队,然后执行:
        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.click(hidden_submenu)
        actions.perform()

1.2基本用法

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.3API汇总

  • perform(self):        ---执行链中的所有动作
  • reset_actions(self):     ---清除存储在远端的动作
  • click(self, on_element=None):   ---鼠标左键单击
  • click_and_hold(self, on_element=None):    --鼠标左键单击,不松开
  • context_click(self, on_element=None):       ---鼠标右键单击
  • double_click(self, on_element=None):        ---鼠标左键双击
  • drag_and_drop(self, source, target):        ---拖拽到某个元素后松开,其中source:鼠标拖动的源元素,target:鼠标释放的目标元素。
  • drag_and_drop_by_offset(self, source, xoffset, yoffset):        ---拖拽到某个坐标后松开
  • key_down(self, value, element=None):        ---某个键盘键被按下
  • key_up(self, value, element=None):          ---松开某个键
  • move_by_offset(self, xoffset, yoffset):     ---鼠标移动到某个坐标
  • move_to_element(self, to_element):          ---鼠标移动到某个元素
  • move_to_element_with_offset(self, to_element, xoffset, yoffset):  ---移动到距某个元素(左上角)多少的位置
  • release(self, on_element=None):     ---在某元素上松开鼠标
  • send_keys(self, *keys_to_send):     ---发送某些值到当前焦点元素
  • send_keys_to_element(self, element, *keys_to_send):     ---发送某些值到指定元素

2.键盘

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

2.1辅助键

  • key_down #某个键盘键被按下

  • key_up  # 松开某个键

  • send_keys #发送某些值到当前焦点元素

  • send_keys_to_element #发送某些值到指定元素

2.2keys

#输入框输入内容
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) 

猜你喜欢

转载自blog.csdn.net/m0_58807719/article/details/130044281