Selenium02篇python+selenium实现Web自动化:鼠标操作和键盘操作!

Posted 测试逍遥子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium02篇python+selenium实现Web自动化:鼠标操作和键盘操作!相关的知识,希望对你有一定的参考价值。

 

一、前言

最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新!

这是python+selenium实现Web自动化第二篇博文

二、Selenium第一篇博文地址:

【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!

三、Selenium之鼠标操作和键盘操作

1.鼠标事件

在webdriver中,鼠标操作的方法封装在 ActionChains 类提供。ActionChains类提供了鼠标操作的常用方法:

ActionChains(driver),将浏览器驱动 driver 作为参数传入。

(1) perform(): 执行所有 ActionChains 中存储的行为,是对整个操作的提交动作;

(2) context_click(): 右击

(3) double_click(): 双击

(4) drag_and_drop(): 拖动

(5) move_to_element(): 鼠标悬停, 在调用时需要指定元素定位

具体代码如下:

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@Time    :   2020/4/15
@Author  :   公众号:软测之家  更多技术干货,软测视频,面试资料请关注!
@Contact :   软件测试技术群:695458161
@License :   (C)Copyright 2017-2019, Micro-Circle
"""

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time


base_url = \'http://www.baidu.com/\'
browser = webdriver.Chrome(\'../tools/chromedriver.exe\')
browser.get(base_url)

# 定位到悬停元素处
above = browser.find_element_by_link_text(\'设置\')
# 对元素执行鼠标悬停操作
ActionChains(browser).move_to_element(above).perform()
time.sleep(5)

# 右击
ActionChains(browser).context_click().perform()
time.sleep(5)

# 定位到要双击的元素处
# double_click_element = browser.find_element_by_link_text(\'新闻\')
# print(double_click_element)
# ActionChains(browser).move_to_element(double_click_element).double_click().perform()
# time.sleep(5)

# 拖动元素
drag_and_drop_element = browser.find_element_by_link_text(\'地图\')
ActionChains(browser).move_to_element(drag_and_drop_element).drag_and_drop().perform()
time.sleep(5)

browser.quit()

2.键盘事件

  前面的 send_keys() 方法用来模拟键盘输入;keys() 类提供了键盘上几乎所有按键的方法,组合键也是可以的。

常用的键盘操作如下:

send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
send_keys(Keys.SPACE) 空格键(Space)
send_keys(Keys.TAB) 制表键(Tab)
send_keys(Keys.ESCAPE) 回退键(Esc)
send_keys(Keys.ENTER) 回车键(Enter)
send_keys(Keys.CONTROL,\'a\') 全选(Ctrl+A)
send_keys(Keys.CONTROL,\'c\') 复制(Ctrl+C)
send_keys(Keys.CONTROL,\'x\') 剪切(Ctrl+X)
send_keys(Keys.CONTROL,\'v\') 粘贴(Ctrl+V)
send_keys(Keys.F1) 键盘 F1
……
send_keys(Keys.F12) 键盘 F12

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@Time    :   2020/4/15
@Author  :   公众号:软测之家  更多技术干货,软测视频,面试资料请关注!
@Contact :   软件测试技术群:695458161
@License :   (C)Copyright 2017-2019, Micro-Circle
@Desc    :   None
"""

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time


base_url = \'https://www.baidu.com/\'
driver = webdriver.Chrome(\'../tools/chromedriver.exe\')
driver.get(base_url)


# 先输入百度
driver.find_element_by_id(\'kw\').send_keys(\'百度\')
# 1.删除度
driver.find_element_by_id(\'kw\').send_keys(Keys.BACK_SPACE)
time.sleep(3)

# 2.键入空格
driver.find_element_by_id(\'kw\').send_keys(Keys.SPACE)
driver.find_element_by_id(\'kw\').send_keys(\'加入空格\')
time.sleep(5)

# 3.ctrl+a 全选输入框里的内容
driver.find_element_by_id(\'kw\').send_keys(Keys.CONTROL, \'a\')
time.sleep(3)

# 4.ctrl+x 剪切输入框里的内容
driver.find_element_by_id(\'kw\').send_keys(Keys.CONTROL, \'x\')
time.sleep(3)

# 5. ctrl+v 粘贴剪切的内容
driver.find_element_by_id(\'kw\').send_keys(Keys.CONTROL, \'v\')
time.sleep(3)

# 6. 回车
driver.find_element_by_id(\'su\').send_keys(Keys.ENTER)
time.sleep(3)


driver.quit()

四、持续更新中请关注

如果你觉得此文对你有帮助,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:

软件测试技术群:695458161群里发放的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

作者:来自公众号:软测之家
出处:https://www.cnblogs.com/csmashang/p/12706696.html
原创不易,欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。

以上是关于Selenium02篇python+selenium实现Web自动化:鼠标操作和键盘操作!的主要内容,如果未能解决你的问题,请参考以下文章

selenium+python+Chrome

selenium+python+Chrome

Selenium 脚本不工作异常

python+selenium--环境搭建

Selenium+Python进行web自动化测试(Demo+API)

1.介绍与环境安装