selenium+python自动化测试之鼠标和键盘事件
Python  /  管理员 发布于 7年前   144
前面的例子中,点击事件都是通过click()方法实现鼠标的点击事件。其实在WebDriver中,提供了许多鼠标操作的方法,这些操作方法都封装在ActionChains类中,包括鼠标右击、双击、悬停和鼠标拖动等功能。
ActionChains类提供的鼠标操作事件
鼠标悬停
页面上有些下拉菜单,在鼠标放到元素上以后,下面的菜单才会显示出来。下面的图片就是一个例子
百度首页上的设置项,下面的菜单默认不会显示,将鼠标停在上面后才会显示,这就是鼠标的悬停操作,菜单显示以后就可以对下面的项进行点击操作
进入搜索设置的代码
# -*- coding: utf-8 -*-from selenium import webdriverimport timedriver = webdriver.Chrome()driver.get("http://www.baidu.com")time.sleep(3)settings = driver.find_element_by_link_text('设置')webdriver.ActionChains(driver).move_to_element(settings).perform()time.sleep(1)settings_search = driver.find_element_by_class_name('setpref')settings_search.click()time.sleep(3)driver.close()
打开页面后,根据链接的文本信息找到设置项,使用ActionChains的move_to_element()方法将鼠标悬停在设置上,然后找到搜索设置项
鼠标的右击、双击和拖动事件都是通过上述的方法调用,只要将方法替换一下就可以了。拖动事件需要传入两个参数,第一个参数是拖动的起点元素,第二个参数是终点元素
webdriver.ActionChains(driver).context_click("右击的元素定位").perform() #右击事件webdriver.ActionChains(driver).double_click("双击的元素定位").perform() #双击事件webdriver.ActionChains(driver).drag_and_drop("拖动的起点元素", "拖动的终点元素").perform() #拖动事件
键盘事件
Keys类中提供了几乎所有的键盘事件,在鼠标事件中用到了两个键盘事件,键盘的向下按键(send_keys(Keys.DOWN))和键盘的回车事件(send_keys(Keys.ENTER))。键盘的事件需要导入Keys模块
from selenium.webdriver.common.keys import Keys
所有的键盘事件都包含在这个模块中,send_keys用来模拟键盘输入,除此之外,还可以用例模拟键盘上的按键,不仅支持单个的键盘按键,还支持组合按键输入
# -*- coding: utf-8 -*-from selenium import webdriverimport timedriver = webdriver.Chrome()driver.get("http://www.baidu.com")time.sleep(3)driver.find_element_by_id('kw').send_keys('selenium') #在搜索框中输入"selenium"driver.find_element_by_id('kw').send_keys(Keys.SPACE) #输入空格键driver.find_element_by_id('kw').send_keys('python') #在搜索框中输入"python"driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a') #输入Control+a模拟全选driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'c') #输入Control+c模拟复制driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'v') #输入Control+v模拟粘贴driver.find_element_by_id('kw').send_keys(Keys.ENTER) #输入回车代替点击搜索按钮time.sleep(3)driver.close()
下面是一些常用的键盘事件:
C Keys.BACK_SPACE:回退键(BackSpace)
C Keys.TAB:制表键(Tab)
C Keys.ENTER:回车键(Enter)
C Keys.SHIFT:大小写转换键(Shift)
C Keys.CONTROL:Control键(Ctrl)
C Keys.ALT:ALT键(Alt)
C Keys.ESCAPE:返回键(Esc)
C Keys.SPACE:空格键(Space)
C Keys.PAGE_UP:翻页键上(Page Up)
C Keys.PAGE_DOWN:翻页键下(Page Down)
C Keys.END:行尾键(End)
C Keys.HOME:行首键(Home)
C Keys.LEFT:方向键左(Left)
C Keys.UP:方向键上(Up)
C Keys.RIGHT:方向键右(Right)
C Keys.DOWN:方向键下(Down)
C Keys.INSERT:插入键(Insert)
C DELETE:删除键(Delete)
C NUMPAD0 ~ NUMPAD9:数字键1-9
C F1 ~ F12:F1 - F12键
C (Keys.CONTROL, ‘a'):组合键Control+a,全选
C (Keys.CONTROL, ‘c'):组合键Control+c,复制
C (Keys.CONTROL, ‘x'):组合键Control+x,剪切
C (Keys.CONTROL, ‘v'):组合键Control+v,粘贴
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号