Selenium Web自动化测试 —— 高级控件交互方法!
作者:小教学发布时间:2023-09-28分类:程序开发学习浏览:72
导读:一、使用场景使用场景对应事件复制粘贴键盘事件拖动元素到某个位置鼠标事件鼠标悬停鼠标事件滚动到某个元素滚动事件使用触控笔点击触控笔事件(了解即可)https://www.se...
一、使用场景
使用场景 | 对应事件 |
复制粘贴 | 键盘事件 |
拖动元素到某个位置 | 鼠标事件 |
鼠标悬停 | 鼠标事件 |
滚动到某个元素 | 滚动事件 |
使用触控笔点击 | 触控笔事件(了解即可) |
- https://www.selenium.dev/documentation/webdriver/actions_api
二、ActionChains解析
- 实例化类ActionChains,参数为driver实例。
- 中间可以有多个操作。
- .perform()代表确定执行。
ActionChains(self.driver).操作.perform()
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036
三、键盘事件
- 按下、释放键盘键位
- 结合send_keys回车
3.1、键盘事件——使用shift键实现大写
- mouse = ActionChains(self.driver):实例化ActionChains类
- mouse.key_dowm(keys.SHIFT,ele):按下SHIFT键
- mouse.send_keys(“selenium”):输入字母自动变成大写
- mouse.perform()
3.2、键盘事件——输入后回车
- 方法1:.send_keys(Keys.ENTER)
- 方法2:ActionChains().send_keys(Keys.ENTER).perform()
self.driver.find_element(By.XPATH, '//input[@aria-label="搜索"]').send_keys(Keys.ENTER)
self.action.send_keys(Keys.ENTER).perform()
3.3、键盘事件-复制粘贴
- 多系统兼容
- mac 的复制按钮为 COMMAND
- windows 的复制按钮为 CONTROL
- 左箭头:Keys.ARROW_LEFT
- 按下COMMAND或者CONTROL: key_down(cmd_ctrl)
- 按下剪切与粘贴按钮: send_keys("xvvvvv")
四、鼠标事件
4.1、双击
- double_click(元素对象): 双击元素
def test_double_click(self):
self.driver.get("https://vip.ceshiren.com/#/ui_study/frame")
ele01 = self.driver.find_element(By.XPATH, '//button[@class="el-button el-button--primary"]')
self.action.double_click(ele01).perform()
time.sleep(3)
4.2、鼠标事件-拖动元素
- drag_and_drop(起始元素对象, 结束元素对象): 拖动并放开元素
def test_drag_and_drop(self):
self.driver.get("https://vip.ceshiren.com/#/ui_study/action_chains")
ele01 = self.driver.find_element(By.ID, "item1")
ele02 = self.driver.find_element(By.ID, "item3")
self.action.drag_and_drop(ele01, ele02).perform()
4.3、 鼠标事件-悬浮
- move_to_element(元素对象): 移动到某个元素
def test_move_to_element(self):
self.driver.get('https://vip.ceshiren.com/#/ui_study/action_chains2')
ele01 = self.driver.find_element(By.XPATH, '//div [@data-v-3e28c77a and @class="title"]')
self.action.move_to_element(ele01).perform()
self.driver.find_element(By.XPATH, '//*[contains(text(),"管理")]').click()
五、滚轮/滚动操作
- 滚动到元素
- 根据坐标滚动
5.1、滚动到元素
- ActionChains().scroll_to_element().perform()
def test_scroll_to_element(self):
self.driver.get('https://ceshiren.com/')
ele01 = self.driver.find_element(By.PARTIAL_LINK_TEXT, "jmeter分布式压测创建多节点报错")
self.action.scroll_to_element(ele01).perform()
self.action.scroll_by_amount(0, 100).perform()
ele01.click()
5.2、根据坐标滚动
- ActionChains.scroll_by_amount(横坐标,纵坐标)
def test_scroll_by_amount(self):
self.driver.get('https://ceshiren.com/')
self.action.scroll_by_amount(0, 1000).perform()
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
- 程序开发学习排行
-
- 1鸿蒙HarmonyOS:Web组件网页白屏检测
- 2HTTPS协议是安全传输,为啥还要再加密?
- 3HarmonyOS鸿蒙应用开发——数据持久化Preferences
- 4记解决MaterialButton背景颜色与设置值不同
- 5鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer)
- 6鸿蒙HarmonyOS实战-ArkUI组件(Stack)
- 7鸿蒙HarmonyOS实战-ArkUI组件(GridRow/GridCol)
- 8[Android][NDK][Cmake]一文搞懂Android项目中的Cmake
- 9鸿蒙HarmonyOS实战-ArkUI组件(mediaquery)
- 最近发表
-
- WooCommerce最好的WordPress常用插件下载博客插件模块的相关产品
- 羊驼机器人最好的WordPress常用插件下载博客插件模块
- IP信息记录器最好的WordPress常用插件下载博客插件模块
- Linkly for WooCommerce最好的WordPress常用插件下载博客插件模块
- 元素聚合器Forms最好的WordPress常用插件下载博客插件模块
- Promaker Chat 最好的WordPress通用插件下载 博客插件模块
- 自动更新发布日期最好的WordPress常用插件下载博客插件模块
- WordPress官方最好的获取回复WordPress常用插件下载博客插件模块
- Img to rss最好的wordpress常用插件下载博客插件模块
- WPMozo为Elementor最好的WordPress常用插件下载博客插件模块添加精简版