【WEB自动化测试】-鼠标和键盘操作

一、鼠标操作

1. 鼠标操作

常见的鼠标操作有:点击、右击、双击、悬停、拖拽等,对于这些鼠标操作Selenium都封装了相应的操作方法。

1.1 为什么操作鼠标

现在Web产品中村子啊丰富的鼠标交互方式,作为一个Web自动化测试框架。需要应对这些鼠标操作的应用场景。

1.2 鼠标操作的方法

说明:在Selenium中将操作鼠标的方法封装在ActionChains类中。

实例化对象:

        action = ActionChains(driver)

方法:

        1. context_click(element)   右击 -->模拟鼠标右键点击效果

        2. double_click(element)  双击-->模拟鼠标双击效果

        3. drag_and_drop(source,target)  拖动 -->模拟鼠标拖动效果

        4. move_to_element(element)     悬停 --> 模拟鼠标悬停效果

        5. perform()                     执行 -->此方法用来执行以上所有鼠标操作

提示:

        鼠标操作的所有方法都需要执行perform() 方法才能生效。

1.3 鼠标执行-perform() 

说明:在ActionChains类中所有提供的鼠标事件方法,在调用的时候所有的行为都存储在ActionChains对象中。

        而perform()方法就是真正去执行所有的鼠标事件。

1.4 鼠标右键-context_click

说明:对于点击鼠标右键,如果弹出的就是浏览器默认的菜单,Selenium没有提供操作菜单选项。如果是自定义的右键菜单,则可以通过元素定位来操作菜单中的选项。

1. 导包:from selenium.webdriver import ActionChains

2. 实例化ActionChains对象:action = ActionChains(driver)

3. 调用右键方法:action .context_click(element)

4. 执行:action.perform()

1.5 鼠标双击-double_click()

说明:模拟鼠标左键双击操作

1.6 鼠标拖拽-drag_and_drop(源元素,目的元素)

说明:模拟鼠标拖拽操作

1.7 鼠标悬停-move_to_element()

说明:模拟鼠标悬停在指定的元素上

注意:在该方法执行时,不要动鼠标

    # 实现百度的搜索设置,搜索展示条数
    driver = webdriver.Chrome()
    driver.get("https://www.baidu.com/")
    user_setting = driver.find_element(By.ID, "s-usersetting-top")
    action = ActionChains(driver)
    action.move_to_element(user_setting) # 鼠标悬浮
    action.perform()
    driver.find_element(By.LINK_TEXT,"搜索设置").click()
    # 页面跳转之后,停留时间,加载页面
    time.sleep(2) 
    nr_1 = driver.find_element(By.ID, "nr_1")
    nr_2 = driver.find_element(By.ID, "nr_2")
    nr_3 = driver.find_element(By.ID, "nr_3")
    time.sleep(2)
    if nr_1.is_selected():  # 判断是否被选中
        nr_2.click()
    elif nr_2.is_selected():
        nr_3.click()

    time.sleep(5)
    driver.quit()

二、键盘操作

Selenium中吧键盘的按键都封装在Keys类中

2.1 Keys类

from selenium.webdriver.common.keys import Keys

2.2 常用键盘操作 

1. 元素.send_keys(Keys.BACK_SPACE)  删除键(BackSpace)

2. 元素.send_keys(Keys.SPACE)  空格键(Space)

3. 元素.send_keys(Keys.TAB)  制表键(Tab)

4. 元素.send_keys(Keys.ESCAPE)  回退键(Esc)

5. 元素.send_keys(Keys.ENTER)  回车键(Enter)

6. 元素.send_keys(Keys.CONTROL,'a')  全选(Ctrl+A)

6. 元素.send_keys(Keys.CONTROL,'c')  复制(Ctrl+C)

2.3 代码实例

    try:
        driver = webdriver.Chrome()
        driver.get("http://localhost/backend/page/login/login.html")
        user = driver.find_element(By.CSS_SELECTOR, '[placeholder="账号"]')
        user.clear()
        user.send_keys("admin1")
        user.send_keys(Keys.BACK_SPACE)
        user.send_keys(Keys.CONTROL, 'a')
        user.send_keys(Keys.CONTROL, 'c')
        time.sleep(1)
        pwd = driver.find_element(By.CSS_SELECTOR, '[placeholder="密码"]')
        pwd.send_keys(Keys.CONTROL, 'a')
        pwd.send_keys(Keys.CONTROL, 'v')

        time.sleep(5)
    except Exception as e:
        print(e)
    finally:
        driver.quit()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值