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

news/2025/2/14 7:52:12/

一、鼠标操作

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()


http://www.ppmy.cn/news/804390.html

相关文章

每次装完 homebrew,ohmyzsh 就会报错:Insecure completion-dependent directories detected:

参考:https://zhuanlan.zhihu.com/p/313037188 这是因为在big sur安装homebrew后,会在/usr/local/share/生成一个zsh文件夹,里面包含了 因此,zsh文件默认设置的权限是775,也就是group user有writer的权利,zsh认为这是…

python播放音乐同步歌词范晓萱_范晓萱《同步》歌词-同步Mp3歌词下载_爱歌词网...

同步LRC歌词 [ti:同步] [ar:范晓萱] [al:] [by:agul369] [00:01.77]范晓萱 - 同步(陪安东尼度过漫长岁月电影主题曲) [00:10.00]歌词搜索www.22lrc.com [00:20.21]相隔两地的时空 [00:24.27]默契对话没有距离 [00:28.19]冰冷的萤幕 [00:31.19]因为我们双手产生热度 [00:36.67]努…

有助于睡眠的15首歌曲,听着最容易入睡的歌曲推荐

失眠时大家都会听什么歌可以让自己快速入睡,改善失眠?可能等到自己真正失眠的时候,完全不知道该听点什么,下面就给大家分享一些在睡不着时,可以听的一些音乐,纯音乐、歌单、还有一些助眠好物都用&#xff0…

分享几个实用的神器APP系列(四)

苏生不惑第350篇原创文章,将本公众号设为星标,第一时间看最新文章。 之前分享过的app我都更新到博客上了 https://blog-susheng.vercel.app/ ,这里继续分享实用的app系列 ,在公众号后台对话框回复关键词 app 获取下载地址。 极简…

Hexo-Sakura主题美化-超详细

个人博客 网站 目录和文件分析 分析下themes/Sakura目录结构和文件 首先分析下目录,主要包括以下几个 languages 这个文件夹中存放的是语言文件,主要是博客中的一些字符以简体中文、繁体中文、英文显示的定义 layout 这个是布局文件夹,所有…

电台电视台使用频率最高的36首经典背景音乐

1.豪勇七蛟龙(The Magnificent Seven)  大型颁奖晚会最喜欢用的背景音乐,地球人都知道。伯恩斯坦作曲。  http://www.aebc.com/~shtuet/m7.mp3    2.故乡的原风景  《神雕侠侣》多次引用,哀伤感人。出自扶桑作曲家宗次郎…

51首电视台使用频率最高经典背景音乐

1.豪勇七蛟龙(The Magnificent Seven) 大型颁奖晚会最喜欢用的背景音乐,地球人都知道。伯恩斯坦作曲。 地址 http://www.aebc.com/~shtuet/m7.mp3 2.故乡的原风景 《神雕侠侣》多次引用,哀伤感人。出自扶桑作曲家宗次…

Hexo部署+Sakura主题调教教程

CSDN不定期补充 个人博客内会实时更新推送: https://flymc.cc/2020/03/28/Sakura/ 前言 这个教程的重点在于调教Sakura主题,关于HexoGitHub搭建博客的教程数不胜数,这里仅仅简单描述并提供相关指令以便复制,并对一些关键步骤或常…