2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > web自动化(鼠标键盘操作)

web自动化(鼠标键盘操作)

时间:2022-04-27 20:47:44

相关推荐

web自动化(鼠标键盘操作)

一、鼠标和键盘操作

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()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。