一、鼠标和键盘操作
1、鼠标操作
1.1 鼠标操作实现方式
selenium提供鼠标操作的方法及步骤
需要导入ActionChains类
通过ActionChains实例化鼠标对象 action = ActionChains(driver) # driver表示的是浏览器驱动对象
调用鼠标的事件方法
调用鼠标的执行方法 action.perform()
1.2 鼠标右击操作
右击操作的实现步骤:
针对由html自定义的右键菜单。可以使用右击的方式来进行操作。
创建鼠标对象 action = ActionChains(driver)
调用右击事件方法 action.context_click(element) # element表示的是一个元素对象
调用鼠标执行方法 action.perform()
# 导包import timefrom selenium import webdriver# 实例化浏览器驱动from selenium.webdriver import ActionChainsfrom mon.by import Bydriver = webdriver.Chrome()driver.maximize_window()# 打开测试网站driver.get("file:///D:/software/UI%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/web%E8%87%AA%E5%8A%A8%E5%8C%96%E5%B7%A5%E5%85%B7%E9%9B%86%E5%90%88/pagetest/%E6%B3%A8%E5%86%8CA.html")# 在用户名文本框上点击鼠标右键# 创建鼠标对象action = ActionChains(driver)# 调用鼠标右击的方法action.context_click(driver.find_element(By.ID, "userA"))# 调用鼠标执行的方法action.perform()# 等待3Stime.sleep(3)# 退出浏览器驱动driver.quit()
1.3 鼠标双击操作
鼠标双击的实现步骤
创建鼠标对象 action=ActionChains(driver)
调用鼠标双击事件方法 action.double_click(element) # element表示是元素对象
调用鼠标的执行方法 action.perform()
# 导包import timefrom selenium import webdriver# 实例化浏览器驱动from selenium.webdriver import ActionChainsfrom mon.by import Bydriver = webdriver.Chrome()driver.maximize_window()# 打开测试网站driver.get("file:///D:/software/UI%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/web%E8%87%AA%E5%8A%A8%E5%8C%96%E5%B7%A5%E5%85%B7%E9%9B%86%E5%90%88/pagetest/%E6%B3%A8%E5%86%8CA.html")# 输入用户名admin,暂停3秒钟后,双击鼠标左键,选中adminelement = driver.find_element(By.ID, "userA")element.send_keys("admin")time.sleep(3)# 创建鼠标对象action = ActionChains(driver)# 调用鼠标双击事件方法action.double_click(element)# 调用鼠标执行方法action.perform()# 等待3Stime.sleep(3)# 退出浏览器驱动driver.quit()
1.4 鼠标拖动操作
鼠标拖动的实现步骤:
创建鼠标对象 action = ActionChains(driver)
调用鼠标拖动事件方法 action.drag_and_drop(source, target) # source表示的是源元素,被拖动的元素, target表示是目标源,也就是要拖动到哪个元素上。
调用鼠标执行方法 action.perform()
# 导包import timefrom selenium import webdriver# 实例化浏览器驱动from selenium.webdriver import ActionChainsfrom mon.by import Bydriver = webdriver.Chrome()driver.maximize_window()# 打开测试网站driver.get("file:///D:/software/UI%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/web%E8%87%AA%E5%8A%A8%E5%8C%96%E5%B7%A5%E5%85%B7%E9%9B%86%E5%90%88/pagetest/drag.html")# 把红色方框拖拽到蓝色方框上source = driver.find_element(By.ID, "div1")target = driver.find_element(By.ID, "div2")# 实例化鼠标对象action = ActionChains(driver)# 调用鼠标拖动事件方法action.drag_and_drop(source, target)# 调用鼠标执行方法action.perform()# 等待3Stime.sleep(3)# 退出浏览器驱动
1.5鼠标悬停操作
鼠标悬停实现步骤:
实例化鼠标对象 action = ActionChains(driver)
调用鼠标悬停事件方法 action.move_to_element(element) # element表示的是元素对象
调用鼠标执行方法 action.perform()
# 导包import timefrom selenium import webdriver# 实例化浏览器驱动from selenium.webdriver import ActionChainsfrom mon.by import Bydriver = webdriver.Chrome()driver.maximize_window()# 打开测试网站driver.get("file:///D:/software/UI%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/web%E8%87%AA%E5%8A%A8%E5%8C%96%E5%B7%A5%E5%85%B7%E9%9B%86%E5%90%88/pagetest/%E6%B3%A8%E5%86%8CA.html")# 模拟鼠标悬停在‘注册’按钮上element = driver.find_element(By.CSS_SELECTOR, "button")# 创建鼠标对象action = ActionChains(driver)# 调用鼠标悬停事件方法action.move_to_element(element)# 调用鼠标执行方法action.perform()# 等待3Stime.sleep(3)# 退出浏览器驱动driver.quit()
1.6 鼠标单元素拖动操作
鼠标单元素拖动实现步骤
创建鼠标对象 action=ActionChains(driver)
调用鼠标单元素拖动事件方法action.drag_and_drop_by_offset(element, x, y)x, y 表示的元素拖动时横向和纵向移动的距离,单位为像素, element表示的是元素对象 移动的像素最终要比在web页面中看到的移动像素值要大,最好大于5个像素或者10像素
调用鼠标执行方法 action.perform()
# 导包import timefrom selenium import webdriver# 实例化浏览器驱动from selenium.webdriver import ActionChainsfrom mon.by import Bydriver = webdriver.Chrome()driver.maximize_window()# 打开测试网站driver.get("file:///D:/software/UI%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/web%E8%87%AA%E5%8A%A8%E5%8C%96%E5%B7%A5%E5%85%B7%E9%9B%86%E5%90%88/pagetest/%E9%AA%8C%E8%AF%81%E7%A0%81/index.html")# 模拟鼠标实现滑块验证码的操作element = driver.find_element(By.CSS_SELECTOR, '.handler_bg')# 创建鼠标对象action = ActionChains(driver)# 调用鼠标单元素拖动事件方法action.drag_and_drop_by_offset(element, 265, 0)# 调用鼠标执行方法action.perform()# 等待3Stime.sleep(3)# 退出浏览器驱动driver.quit()
2、键盘操作
模拟键盘上面的快捷键的操作
调用键盘操作的快捷键的方法 element.send_keys(快捷键的键值)
需要导入Keys类, 第一个字母是大写
单键值: 直接传入对应的键值
组合键: 键值之间由逗号分隔
send_keys(Keys.CONTROL, Keys.SHIFT, 'i') 快捷键ctrl+shift+I
常用的快捷键
send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
send_keys(Keys.SPACE) 空格键(Space)
send_keys(Keys.TAB) 制表键(Tab)
send_keys(Keys.ESCAPE) 回退键(Esc)
send_keys(Keys.ENTER) 回车键(Enter)
send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)
send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)
send_keys(Keys.CONTROL, 'v') 粘贴(Ctrl+V)
# 导包import timefrom selenium import webdriver# 实例化浏览器驱动from selenium.webdriver import ActionChainsfrom mon.by import Byfrom mon.keys import Keysdriver = webdriver.Chrome()driver.maximize_window()# 打开测试网站driver.get("file:///D:/software/UI%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/web%E8%87%AA%E5%8A%A8%E5%8C%96%E5%B7%A5%E5%85%B7%E9%9B%86%E5%90%88/pagetest/%E6%B3%A8%E5%86%8CA.html")# 1). 输入用户名:admin1,暂停2秒,删除1element = driver.find_element(By.ID, 'userA')element.send_keys("admin1")time.sleep(2)element.send_keys(Keys.BACK_SPACE) # 删除最后一个字符串 clear()# 2). 全选用户名:admin,暂停2秒element.send_keys(Keys.CONTROL, 'a')time.sleep(2)# 3). 复制用户名:admin,暂停2秒element.send_keys(Keys.CONTROL, 'c')time.sleep(2)# 4). 粘贴到密码框driver.find_element(By.ID, 'passwordA').send_keys(Keys.CONTROL, 'V')# 等待3Stime.sleep(3)# 退出浏览器驱动driver.quit()
如果觉得《web自动化(鼠标键盘操作)》对你有帮助,请点赞、收藏,并留下你的观点哦!