【心善渊&Selenium3.0基础】— 13、Selenium中鼠标和键盘的操作

一、鼠标事件

1、鼠标事件介绍

前面例子中我们已经学习到可以用click()来模拟鼠标的单击操作,而我们在实际的web产品测试中发现,有关鼠标的操作,不单单只有单击,有时候还要用到右击,双击,拖动等操作,这些操作包含在ActionChains类中。

2、ActionChains 类鼠标操作的常用方法

事件 说明
context_click() 右击
double_click() 双击(常用)
drag_and_drop() 拖动(常用)
move_to_element() 鼠标悬停在一个元素上(常用)
click_and_hold() 按下鼠标左键在一个元素上

注意:Seleniun只能实现在页面中单击右键,但是右键后出现的菜单界面上,还不支持定位,也就不能操作。

3、perform()方法

ActionChains用于生成用户的行为。所有的行为都存储在ActionChains对象。

perform()方法执行所有ActionChains中存储的行为。

4、鼠标事件操作步骤

  1. 引入包ActionChains()

    # 两种导入都可以
    from selenium.webdriver import ActionChains
    from selenium.webdriver.common.action_chains import ActionChains
    

    这里需要注意的是,在使用ActionChains类下面的方法之前,要先将包引入。

  2. 定位需要鼠标操作的元素。

  3. 执行鼠标事件。

    """
    1. 语法:
    	ActionChains(driver).鼠标事件(需要鼠标操作的元素).perform()
    2. 说明:
    	driver: wedriver实例执行用户操作,也就是当前浏览器对象。
    	鼠标事件(元素):双击,拖拽,悬停等动作,需要将操作的元素定位出来并且穿入相应的动作中。
    	perform() : 执行
    """
    # 1. 定位注册按钮
    button = driver.find_element_by_css_selector("button[type='submitA']")
    # 2. 执行鼠标悬停事件
    ActionChains(driver).move_to_element(button).perform()
    

    perform()执行所有ActionChains中存储的行为。

    perfrome()同样也是ActionChains类提供的的方法,通常与ActionChains()配合使用。

5、示例

(1)右键单击、左键双击
"""
1.学习目标:
    必须掌握鼠标的操作方法
2.语法
    2.1 导入ActionChains
        from selenium.webdriver.common.action_chains import ActionChains
        from selenium.webdriver import ActionChains
    2.2 使用方法
        ActionChains(driver).鼠标事件(需要鼠标操作的元素).perform()
    2.3 鼠标右键
        context_click(需要操作的元素)
    2.3 鼠标双击
        double_click(需要操作的元素)
3.需求
    在百度页面中,完成鼠标右击和鼠标双击动作
"""
# 1.导入selenium
from selenium import webdriver
from time import sleep
from selenium.webdriver import ActionChains
# from selenium.webdriver.common.action_chains import ActionChains

# 2.打开浏览器
driver = webdriver.Chrome()

# 3.打开百度页面
url = "https://www.baidu.com/"
driver.get(url)

# 4.在百度首页右键单击、左键双击
# 4.1 右键单击
# 4.1.1 定位百度首页logo
logo = driver.find_element_by_css_selector("#lg > map > area")

# 4.1.2 在logo图片上右击鼠标
ActionChains(driver).context_click(logo).perform()

# 4.2 左键双击 百度一下
# 4.2.1 定位百度输入框
baidu_element = driver.find_element_by_id("kw")

# 4.2.2 在输入框中输入【心善渊&Selenium基础】
baidu_element.send_keys("【心善渊&Selenium基础】")
sleep(3)

# 4.2.3 定位按钮 百度一下
yixia_element = driver.find_element_by_id("su")

# 4.2.4 左键双击 百度一下
ActionChains(driver).double_click(yixia_element).perform()
sleep(3)

# 5.关闭浏览器
driver.quit()
(2)鼠标拖拽动作

动作描述:

  • 在源元素上按下鼠标左键,然后移动到目标元素上释放。
  • source:鼠标拖动的源元素。
  • target:鼠标释放的目标元素。

页码代码片段:

<html>
<head>
    <meta 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值