一、前言

最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新!

这是python+selenium实现Web自动化第二篇博文

二、Selenium第一篇博文地址:

【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!

三、Selenium之鼠标操作和键盘操作

1.鼠标事件

在webdriver中,鼠标操作的方法封装在 ActionChains 类提供。ActionChains类提供了鼠标操作的常用方法:

ActionChains(driver),将浏览器驱动 driver 作为参数传入。

(1) perform(): 执行所有 ActionChains 中存储的行为,是对整个操作的提交动作;

(2) context_click(): 右击

(3) double_click(): 双击

(4) drag_and_drop(): 拖动

(5) move_to_element(): 鼠标悬停, 在调用时需要指定元素定位

具体代码如下:

  1. #!/usr/bin/env python
  2. # -*- encoding: utf-8 -*-
  3. """
  4. @Time : 2020/4/15
  5. @Author : 公众号:软测之家 更多技术干货,软测视频,面试资料请关注!
  6. @Contact : 软件测试技术群:695458161
  7. @License : (C)Copyright 2017-2019, Micro-Circle
  8. """
  9.  
  10. from selenium import webdriver
  11. from selenium.webdriver.common.action_chains import ActionChains
  12. import time
  13.  
  14. base_url = 'http://www.baidu.com/'
  15. browser = webdriver.Chrome('../tools/chromedriver.exe')
  16. browser.get(base_url)
  17.  
  18. # 定位到悬停元素处
  19. above = browser.find_element_by_link_text('设置')
  20. # 对元素执行鼠标悬停操作
  21. ActionChains(browser).move_to_element(above).perform()
  22. time.sleep(5)
  23.  
  24. # 右击
  25. ActionChains(browser).context_click().perform()
  26. time.sleep(5)
  27.  
  28. # 定位到要双击的元素处
  29. # double_click_element = browser.find_element_by_link_text('新闻')
  30. # print(double_click_element)
  31. # ActionChains(browser).move_to_element(double_click_element).double_click().perform()
  32. # time.sleep(5)
  33.  
  34. # 拖动元素
  35. drag_and_drop_element = browser.find_element_by_link_text('地图')
  36. ActionChains(browser).move_to_element(drag_and_drop_element).drag_and_drop().perform()
  37. time.sleep(5)
  38.  
  39. browser.quit()

2.键盘事件

  前面的 send_keys() 方法用来模拟键盘输入;keys() 类提供了键盘上几乎所有按键的方法,组合键也是可以的。

常用的键盘操作如下:

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,'x') 剪切(Ctrl+X)
send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)
send_keys(Keys.F1) 键盘 F1
……
send_keys(Keys.F12) 键盘 F12

  1. #!/usr/bin/env python
  2. # -*- encoding: utf-8 -*-
  3. """
  4. @Time : 2020/4/15
  5. @Author : 公众号:软测之家 更多技术干货,软测视频,面试资料请关注!
  6. @Contact : 软件测试技术群:695458161
  7. @License : (C)Copyright 2017-2019, Micro-Circle
  8. @Desc : None
  9. """
  10.  
  11. from selenium import webdriver
  12. from selenium.webdriver.common.keys import Keys
  13. import time
  14.  
  15. base_url = 'https://www.baidu.com/'
  16. driver = webdriver.Chrome('../tools/chromedriver.exe')
  17. driver.get(base_url)
  18.  
  19. # 先输入百度
  20. driver.find_element_by_id('kw').send_keys('百度')
  21. # 1.删除度
  22. driver.find_element_by_id('kw').send_keys(Keys.BACK_SPACE)
  23. time.sleep(3)
  24.  
  25. # 2.键入空格
  26. driver.find_element_by_id('kw').send_keys(Keys.SPACE)
  27. driver.find_element_by_id('kw').send_keys('加入空格')
  28. time.sleep(5)
  29.  
  30. # 3.ctrl+a 全选输入框里的内容
  31. driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a')
  32. time.sleep(3)
  33.  
  34. # 4.ctrl+x 剪切输入框里的内容
  35. driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'x')
  36. time.sleep(3)
  37.  
  38. # 5. ctrl+v 粘贴剪切的内容
  39. driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'v')
  40. time.sleep(3)
  41.  
  42. # 6. 回车
  43. driver.find_element_by_id('su').send_keys(Keys.ENTER)
  44. time.sleep(3)
  45.  
  46. driver.quit()

四、持续更新中请关注

如果你觉得此文对你有帮助,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:

软件测试技术群:695458161,群里发放的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

作者:来自公众号:软测之家
出处:https://www.cnblogs.com/csmashang/p/12706696.html
原创不易,欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。

【Selenium02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!的更多相关文章

  1. 【python+selenium的web自动化】- 元素的常用操作详解(一)

    如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html ​ 本篇主要内容:1.元素 ...

  2. 【python+selenium的web自动化】- 针对上传操作的实现方案

    如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html 关于上传操作 ​ 上传有两 ...

  3. 【python+selenium的web自动化】- 元素的常用操作详解(二)

    如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html ​ 本篇主要内容:1.鼠标 ...

  4. 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...

  5. 【Selenium05篇】python+selenium实现Web自动化:读取ini配置文件,元素封装,代码封装,异常处理,兼容多浏览器执行

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第五篇博 ...

  6. 【Selenium06篇】python+selenium实现Web自动化:日志处理

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第六篇博 ...

  7. 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...

  8. 【Selenium04篇】python+selenium实现Web自动化:文件上传,Cookie操作,调用 JavaScript,窗口截图

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第四篇博 ...

  9. 【Selenium07篇】python+selenium实现Web自动化:PO模型,PageObject模式!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第七篇博 ...

随机推荐

  1. 033.Kubernetes集群安全-API Server认证及授权

    一 Kubernetes集群安全 1.1 安全机制 Kubernetes通过一系列机制来实现集群的安全控制,其中包括API Server的认证授权.准入控制机制及保护敏感信息的Secret机制等.集群 ...

  2. Java 14 发布了,可以扔掉Lombok了?

    2020年3月17日发布,Java正式发布了JDK 14 ,目前已经可以开放下载.在JDK 14中,共有16个新特性,本文主要来介绍其中的一个特性:JEP 359: Records 官方吐槽最为致命 ...

  3. java实现简单的星座查询

    在校小白,大神勿喷. 版本已简化 连接mysql数据库验证用户名及密码进行登陆 public class mysql {Connection con;public mysql(){    try{   ...

  4. [转]【maven】解决Missing artifact jdk.tools:jdk.tools:jar:1.6

    解决在pom.xml文件中出现的Missing artifact jdk.tools:jdk.tools:jar:1.6问题 <dependency> <groupId>jdk ...

  5. [BFS]Codeforces Igor In the Museum

     Igor In the Museum time limit per test 1 second memory limit per test 256 megabytes input standard ...

  6. python plt 色卡

    https://blog.csdn.net/Strive_For_Future/article/details/100151261 plt 绘图时通常需要各种颜色,还需要去介绍文档找,很麻烦,这里把p ...

  7. 一文总结数据科学家常用的Python库(上)

    概述 这篇文章中,我们挑选了24个用于数据科学的Python库. 这些库有着不同的数据科学功能,例如数据收集,数据清理,数据探索,建模等,接下来我们会分类介绍. 您觉得我们还应该包含哪些Python库 ...

  8. ClickHouse学习系列之一【安装说明】

    背景 最近花了些时间看了下ClickHouse文档,发现它在OLAP方面表现很优异,而且相对也比较轻量和简单,所以准备入门了解下该数据库系统.按照习惯第一步先安装,本文对其用户权限管理方面进行梳理说明 ...

  9. python文件调用方法

    文件输入输出 open函数可以对文本文件进行读写的操作 基本形式: open(filename,mode) filename是文件名,可以写为绝对路径也可以是相对路径 mode是打开模式. open函 ...

  10. Springcloud config + zuul 搭建动态网关

    1,实现的效果,就是zuul 网关的配置路由实现负载均衡,zuul 的配置文件放在springcloud config 上 2,需要的服务如下: 3,其实就是配置下springcloud-zuul 的 ...