Selenium2+python自动化12-操作元素(键盘和鼠标事件)

前言

在前面的几篇中重点介绍了一些元素的到位方法,到位到元素后,接下来就是需要操作元素了。本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件
有些web界面的选项菜单需要鼠标悬停在某个元素上才能显示出来(如百度页面的设置按钮)。

一、简单操作

    1.点击(鼠标左键)页面按钮:click()

    2.请空输入框:clear()

    3.输入字符串:send_keys()

    4.打开测试部落论坛后,点击放大镜搜索图标,一般为了保证输入的正确性,可以先清空下输入框,然后输入搜索关键字

 

二、submit提交表单

    1.在前面百度搜索案例中,输入关键字后,可以直接按回车键搜索,也可以点搜索按钮搜索。

    2.submit()一般用于模拟回车键

    3.但是论坛的搜索,如果用submit的话,会报错,可是又没有搜索点击按钮,怎么办呢?

三、键盘操作

    1.selenium提供了一整套的模拟键盘操作事件,前面submit()方法如果不行的话,可以试试模拟键盘事件

    2.模拟键盘的操作需要先导入键盘模块:from selenium.webdriver.common.keys import Keys

    3.模拟enter键,可以用send_keys(Keys.ENTER)

    4.其它常见的键盘操作:

键盘F1到F12:send_keys(Keys.F1) 把F1改成对应的快捷键

复制Ctrl+C:send_keys(Keys.CONTROL,'c') 

粘贴Ctrl+V:send_keys(Keys.CONTROL,'v') 

 全选Ctrl+A:send_keys(Keys.CONTROL,'a') 

剪切Ctrl+X:send_keys(Keys.CONTROL,'x') 

制表键Tab:  send_keys(Keys.TAB) 

这里只是列了一些常用的,当然除了键盘事件,也有鼠标事件

四、鼠标悬停事件

    1.鼠标不仅仅可以点击(click),鼠标还有其它的操作,如:鼠标悬停在某个元素上,鼠标右击,鼠标按住某个按钮拖到

    2.鼠标事件需要先导入模块:from selenium.webdriver.common.action_chains import ActionChains

perform() 执行所有ActionChains中的行为

move_to_element() 鼠标悬停

    3.这里以百度页面设置按钮为例

    4.除了常用的鼠标悬停事件外,还有

右击鼠标:context_click()

双击鼠标:double_click()

依葫芦画瓢,替换上面案例中对应的鼠标事件就可以了

selenium提供了一整套完整的鼠标和键盘行为事件,功能还是蛮强大滴。下一篇介绍多窗口的情况下如何处理。

在学习过程中有遇到疑问的,可以加selenium(python+java) QQ群交流:646645429

 

《selenium+python高级教程》已出书:selenium webdriver基于Python源码案例

(购买此书送对应PDF版本)

 

 

时间: 2024-09-20 22:37:11

Selenium2+python自动化12-操作元素(键盘和鼠标事件)的相关文章

Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)

前言    自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇主要讲如何用firefox辅助工具进行元素定位. 元素定位在这四个环节中是至关重要的,如果说按学习精力分配的话,元素定位占70%:操作元素10%,获取返回结果10%:断言10%.如果一个页面上的元素不能被定位到,那后面的操作就无法继续了.接下来就来讲webdriver提供的八种基本元素定位方法. 一.环境准备:     1.浏览器选择:Firefox     2.安装

Selenium2+python自动化42-判断元素(expected_conditions)

前言 经常有小伙伴问,如何判断一个元素是否存在,如何判断alert弹窗出来了,如何判断动态的元素等等一系列的判断,在selenium的expected_conditions模块收集了一系列的场景判断方法,这些方法是逢面试必考的!!! expected_conditions一般也简称EC,本篇先介绍下有哪些功能,后续更新中会单个去介绍.selenium+python高级教程>已出书:selenium webdriver基于Python源码案例 (购买此书送对应PDF版本)   一.功能介绍和翻译

Selenium2+python自动化35-获取元素属性

前言 通常在做断言之前,都要先获取界面上元素的属性,然后与期望结果对比.本篇介绍几种常见的获取元素属性方法. 一.获取页面title 1.有很多小伙伴都不知道title长在哪里,看下图左上角. 2.获取title方法很简单,直接driver.title就能获取到 二.获取元素的文本 1.如下图这种显示在页面上的文本信息,可以直接获取到 2.查看元素属性:<a id="setf" target="_blank" onmousedown="return

Selenium2+python自动化39-关于面试的题

前言 最近看到群里有小伙伴贴出一组面试题,最近又是跳槽黄金季节,小编忍不住抽出一点时间总结了下, 回答不妥的地方欢迎各位高手拍砖指点.   一.selenium中如何判断元素是否存在? 首先selenium里面是没有这个方法的,判断元素存在需要自己写一个方法了. 元素存在有几种形式,一种是页面有多个元素属性重复的,这种直接操作会报错的:还有一种是页面隐藏的元素操作也会报错 判断方法参考这篇:Selenium2+python自动化36-判断元素存在   二.selenium中hidden或者是di

Selenium2+python自动化47-判断弹出框存在(alert_is_present)

前言 系统弹窗这个是很常见的场景,有时候它不弹出来去操作的话,会抛异常.那么又不知道它啥时候会出来,那么久需要去判断弹窗是否弹出了. 本篇接着Selenium2+python自动化42-判断元素(expected_conditions)讲expected_conditions这个模块   一.判断alert源码分析 class alert_is_present(object):    """ Expect an alert to be present.""

Selenium2+python自动化43-判断title(title_is)

前言 获取页面title的方法可以直接用driver.title获取到,然后也可以把获取到的结果用做断言. 本篇介绍另外一种方法去判断页面title是否与期望结果一种,用到上一篇Selenium2+python自动化42-判断元素(expected_conditions) 提到的expected_conditions模块里的title_is和title_contains两种方法   一.源码分析 1.首先看下源码,如下 class title_is(object):    ""&quo

Selenium2+python自动化64-100(大结局)[已出书]

前言 小编曾经说过要写100篇关于selenium的博客文章,前面的64篇已经免费放到博客园供小伙伴们学习,后面的内容就不放出来了,高阶内容直接更新到百度阅读了.   一.百度阅读地址: 1.本书是在线阅读的,是实时在线阅读,电子书有个好处就是能及时更新内容. (当然购买此书的话,凭流水单号进QQ读书群:372471871可获取一本对应的PDF文档,方便阅读学习) 2.百度阅读地址:https://yuedu.baidu.com/ebook/0f6a093b7dd184254b35eefdc8d

Selenium2+python自动化55-unittest之装饰器(@classmethod)

前言 前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,比如打开浏览器操作,每次执行用例时候都会重新打开,这样就会浪费很多时间. 于是就想是不是可以只打开一次浏览器,执行完用例再关闭呢?这就需要用到装饰器(@classmethod)来解决了.   一.装饰器 1.用setUp与setUpClass区别 setup():每个测试case运行前运行 teardown():每个测试case运行完后执行 setUpClass():必须使用@classm

Selenium2+python自动化28-table定位

前言     在web页面中经常会遇到table表格,特别是后台操作页面比较常见.本篇详细讲解table表格如何定位. 一.认识table     1.首先看下table长什么样,如下图,这种网状表格的都是table     2.源码如下:(用txt文本保存,后缀改成html) <!DOCTYPE html><meta charset="UTF-8"> <!-- for HTML5 --><meta http-equiv="Conte