在浏览器中,通常会用到鼠标来进行操作,比如右键菜单中选择一个操作,在

selenium 中提供了下列鼠标相关操作。

ActionChains 类似提供了以下方法:

context_click() 右击

double_click() 双击

drag_and_drop() 拖拽

鼠标右击

模拟用户在 LMD 登陆界面,在输入邮箱地址的输入框右键,但是这里本身没有定义右

键,所以只能打开右键,而无法操作右键,如果在项目中有用到,那右键后的菜单也

可以随行定位,并操作。示例:

from selenium import webdriver
26
driver=webdriver.Firefox()
driver.get('http://www.chuangyijia.com/admin/login')
driver.implicitly_wait(3)
test=driver.find_element_by_id('email')
找到要执行右键操作的元素
ActionChains(driver).context_click(test).perform()
对被操作元素执行右键

鼠标双击

from selenium import webdriver
driver=webdriver.Firefox()
driver.get('http://www.chuangyijia.com/admin/login')
driver.implicitly_wait(3)
test=driver.find_element_by_id('email')
找到要执行右键操
ActionChains(driver).double_click(test).perform()
对被操作元素执行双击

鼠标拖放

在一些 web 页面中,一些菜单需要将鼠标放上去,才会显示它的子菜单,在这

种情况下,自动化需要模拟人为将鼠标放到菜单上。

下面通过百度页面来实现这个操作,在百度页面中,要对搜素的设置列行设置,

这种操作需要将鼠标放到页面的设置菜单中,才能看到搜索设置,才能进行下一步的

操作。代码如下:

driver.get('https://www.baidu.com')
打开百度页面
seting=driver.find_element_by_link_text('设置')
找到设置
ActionChains(driver).move_to_element(seting).perform()
将鼠标移动到设置菜单上
driver.find_element_by_link_text('搜索设置').click()
点击设置下的搜索设置

按键用法

使用键盘时,需要导入
selenium.webdriver.common.keys 中的 Keys 模块。

下面代码模拟用户通过键盘向邮箱地址中输入一个数字。

driver.find_element_by_xpath('//form[@id="login"]/input[1]').
send_keys(Keys.NUMPAD3)
Keys.NUMPAD3 表示从键盘输入数字 3

下面模拟操作 tab 键和 enter 键

driver.find_element_by_xpath('//form[@id="login"]/input[1]').
send_keys('lib@163.com')
输入邮箱
driver.find_element_by_xpath('//form[@id="login"]/input[2]').
send_keys('12345678')
输入密码
driver.find_element_by_xpath('//form[@id="login"]/input[2]').
send_keys(Keys.TAB)
按下 tab 键
driver.find_element_by_xpath('//form[@id="login"]/button').se
nd_keys(Keys.ENTER)
按下回车键

通过上面的代码能够看出,输入邮箱和密码之后,按下 tab 键,操作会切换到登录按键

钮上,然后在登陆按钮上模拟用户按下 enter 键。

弼然这样的操作需要按业务的顺序来的,否则会出错。

组合键

在 web 页面使用键盘除了上面的操作之外,还可能会有其他操作,比如组合键。

接下来,通过代码模拟用户在界面输入邮箱地址之后,使用 ctrl+a 的方式,将其全选,

然后再使用 ctrl+c 的方式将内容复制出来,登陆成功后,将复制的内容粘贴到创意列

表的标题中。代码如下:

driver.find_element_by_xpath('//form[@id="login"]/input[1]').
send_keys('lib@163.com')
输入邮箱地址
driver.find_element_by_xpath('//form[@id="login"]/input[1]').
send_keys(Keys.CONTROL,'a')
将输入的字符串使用 ctrl+a 键全选
driver.find_element_by_xpath('//form[@id="login"]/input[1]').
send_keys(Keys.CONTROL,'c')
在按下 ctrl+c,将全选的内容复制到剪切板
driver.find_element_by_xpath('//form[@id="login"]/input[2]').
send_keys('12345678')
输入密码
driver.find_element_by_xpath('//button[contains(text(),"登录
")]').click()
登陆
#sleep(2)
driver.implicitly_wait(3)
driver.find_element_by_css_selector('#dashboard-menu >
li:nth-child(2) > a:nth-child(1)').click()
点击待审核管理
driver.find_element_by_css_selector('#input01').send_keys(Key
s.CONTROL,'v')
在搜索栏中的标题输入框中,用 ctrl+v 粘贴到输入框

手把手带你学python自动化测试(五)——鼠标键盘操作相关推荐

  1. 手把手带你学python自动化测试(六)——多层窗口定位

    多层框架定位 在 web 的自劢化测试工作中,通常会碰到一个元素无法定位的问题,检查了徆多次, 依然得丌到解决,此时就需要了解下 html 的 frame 框架了, frame 可以实现一个窗口 中显 ...

  2. Selenium自动化测试-6.鼠标键盘操作

    ------·今天距2020年77天·------ 这是ITester软件测试小栈第59次推文 大家好 我是vivi小胖虎 作为测试 好像对于点点点这事一直放不下 如何让点点点变得更简单 让人变得更懒 ...

  3. python PyAutoGUI 模拟鼠标键盘操作和截屏

    简介 一款跨平台/无依赖的自动化测试工具,目测只能控制鼠标/键盘/获取屏幕尺寸/弹出消息框/截屏. 安装 pip install pyautogui 鼠标键盘控制 >>> impor ...

  4. 手把手带你学python—牛客网python 机器学习 信息熵的计算

    牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么,传送门- 牛客网python基础

  5. 手把手带你学python—牛客网python基础 pandas读取文件查看用户数据集的大小

    牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么,传送门- 牛客网python基础

  6. 手把手带你学python—牛客网python基础 鸢尾花分类

    牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么,传送门- 牛客网python基础

  7. 手把手带你学python—牛客网python基础 牛牛的逻辑运算

      牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么,传送门- 牛客网python基础

  8. python --pyautogui(模拟鼠标键盘操作)

    安装 pip install pyautogui 官网 https://pyautogui.readthedocs.io/en/latest/ 参考文章1 参考文章2 详解 自动防故障 pyautog ...

  9. python截图工具和模拟鼠标键盘_python PyAutoGUI 模拟鼠标键盘操作和截屏功能

    简介 一款跨平台/无依赖的自动化测试工具,目测只能控制鼠标/键盘/获取屏幕尺寸/弹出消息框/截屏. 安装 pip install pyautogui 鼠标键盘控制 >>> impor ...

最新文章

  1. python3 字符串操作总结
  2. nginx子域名 linux,配置nginx服务器 —— Nginx添加多个二级子域名
  3. mysql5.7在centos上安装
  4. MyEclipse使用总结——在MyEclipse中设置jsp页面为默认utf-8编码
  5. sha1withRSA md5withRSA分析
  6. Mysql性能调优工具Explain结合语句讲解
  7. asp.net core webApi 参数保护
  8. 拳王虚拟项目公社:一款解除网站禁止复制的插件,Simple Allow Copy V 0.8.2
  9. python多线程编程技术主要应用_python多线程,多进程编程。
  10. java 向下转型运行时错误_java多态和向下转型问题。
  11. Python实现矩阵所有元素之和及某一列之和和某一行之和??
  12. UUIDHexGenerator
  13. android viewholder静态,android – 静态ViewHolder并在使用RecyclerView时获取上下文
  14. 9种常见的HR数据分析方法
  15. QOS端口限速EMAIL流量限速
  16. [SQLITE_BUSY]问题简析与解决
  17. win7未能成功安装驱动服务器,ghost win7未能成功安装设备驱动程序怎么办解决方法...
  18. Android神兵利器之黄油刀的使用(ButterKnife)
  19. 常用的局域网的网络拓扑有哪些种类?现在最流行的是哪种结构?为什么早期的以太网选择总线拓扑结构而不是星形拓扑结构,但现在却改为使用星形拓扑结构?
  20. DHCP租约过程,如何使用DHCP

热门文章

  1. 2013年IT行业薪资待遇
  2. Windows Server 2008 安装VMware Tools
  3. 黑客入门(超级详细版)
  4. [B2R]Raven: 2靶机
  5. web前端入门到实战:css中border-style 属性
  6. 《小白兔到大黑牛》第十三篇maven中Hadoop中类的练习
  7. win10电脑耳机插上突然没音(已解决)
  8. 耳机声音一边大一边小
  9. 详解linux杀死进程方法:kill、pkill、killall之间的区别及用法!
  10. updateByPrimaryKeySelective和updateByPrimaryKey区别