叮!您有一份【鼠标和键盘事件详解】请签收

还记得《家有儿女》这部剧吗?这可是我们90后的经典回忆,其中刘星的两个死党鼠标和键盘大家还有印象吗?在实际的测试过程中,我们不仅仅会用到元素定位,还会利用鼠标和键盘模拟用户的行为。接下来,就让我们一起来学习下鼠标和键盘事件吧。

一、鼠标事件

有关鼠标的操作,不仅仅可以实现单击的效果,还可以模拟右击、双击、拖动等,这些操作都包含在ActionChains类中。我们可以引入:

from selenium.webdriver.common.action_chains import ActionChains

ActionChains类鼠标常用操作:
1.context_click() 右击

# 选择需要鼠标右击的元素
right = driver.find_element_by_id("q")
# 执行右击操作
ActionChains(driver).context_click(right).perform()

其中,ActionChains用于生成用户的行为,所有的行为都存储在ActionChains对象,通过perform()执行存储的行为。

2.double_click() 双击

# 选择需要鼠标双击的元素
doc = driver.find_element_by_id("q")
# 执行双击操作
ActionChains(driver).double_click(doc).perform()

3.drag_and_drop() 拖动

# 1.元素定位
box_one = driver.find_element_by_xpath("//*[@id='div1']") # 框1
box_two = driver.find_element_by_xpath("//*[@id='div2']") # 框2
# 2.使用鼠标拖拽方法
# 2.1 两个元素之间拖拽
ActionChains(driver).drag_and_drop(box_two, box_one).perform()
# 2.2 把元素拖动到指定坐标
ActionChains(driver).drag_and_drop_by_offset(box_two,583,205).perform()

元素之间的拖拽使用drag_and_drop方法,其中第一个参数是起始元素,第二个参数是终止元素;当需要把元素拖动到指定坐标时,运用drag_and_drop_by_offset方法,其中第一个参数是目标元素,第二个参数是x坐标,第三个参数是y坐标。

4.move_to_element() 鼠标悬停在一个元素上

# 定位到悬停的元素
hover = driver.find_element_by_id("q")
# 执行悬停操作
ActionChains(driver).move_to_element(hover).perform()

5.click_and_hold() 按下鼠标左键在一个元素上

# 定位到鼠标按下左键的元素
left = driver.find_element_by_id("q")
# 执行按下左键操作
ActionChains(driver).click_and_hold(left).perform()

小结一下:
1.鼠标事件需要引入ActionChains类
2.执行鼠标事件的时候,结尾一定要写perform()

二、键盘事件

操作页面时,用户可能需要复制、回车等操作完成相应的流程,selenium提供Keys类供我们调用,方便模拟用户行为。使用需要引入:

from selenium.webdriver.common.keys import Keys

常用单个键操作:
send_keys(Keys.BACK_SPACE) 删除键
send_keys(Keys.SPACE) 空格键
send_keys(Keys.TAB) Tab键
send_keys(Keys.ESCAPE) 回退键
send_keys(Keys.ENTER) 回车键
send_keys(Keys.F1) F1键
send_keys(Keys.F12) F12键
常用组合键操作:
send_keys(Keys.CONTROL,‘a’) 全选
send_keys(Keys.CONTROL,‘c’) 复制
send_keys(Keys.CONTROL,‘x’) 剪切
send_keys(Keys.CONTROL,‘v’) 粘贴

接下来,就让我们实战一下吧。案例以https://www.ctrip.com/网址为例,实现输入目的地【北京】,退一格删除字符【京】,然后对目的地的文本全选并复制到关键词。快来试试吧~

# 1.导入selenium
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.keys import Keys
# 2.打开浏览器——谷歌浏览器
driver = webdriver.Chrome("./chromedriver")
# 3.输入网址
driver.get("https://www.ctrip.com/")
sleep(3)
# 4.元素定位
# 目的地
des = driver.find_element_by_id("HD_CityName")
# 关键词
kw = driver.find_element_by_id("HD_TxtKeyword")
# 5.使用键盘事件
des.clear()
des.send_keys("北京")
sleep(1)
des.send_keys(Keys.BACK_SPACE) # 使用退格键删除
sleep(1)
des.send_keys(Keys.CONTROL,"a") # 将目的地的文字全选
sleep(1)
des.send_keys(Keys.CONTROL,'c') # 复制目的地中内容
sleep(1)
kw.send_keys(Keys.CONTROL,'v') # 将复制的内容粘贴到关键词中
sleep(5)
# 6.关闭浏览器
driver.quit()

六月,从做小朋友开始吧。好好学习,天天向上,让我们一起向着未来出发吧!在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值