selenium 提供了比较完整的键盘操作,在使用的模拟键盘操作之前需要我们导入from selenium.webdriver.common.keys import Keys即可,然后就可以来模拟键盘操作。

#导入Keys 模块,然后我们看看Keys 模块定义了那些按键
from selenium.webdriver.common.keys import Keys

导入模块以后,我们可以看看具体的定义按键内容,我已经把经常使用的按键注释标记。

    NULL = '\ue000'
    CANCEL = '\ue001'  # ^break
    HELP = '\ue002'
    BACKSPACE = '\ue003'
    BACK_SPACE = BACKSPACE   #删除键
    TAB = '\ue004'   #TAB键
    CLEAR = '\ue005'
    RETURN = '\ue006'
    ENTER = '\ue007'   #回车键
    SHIFT = '\ue008'   #Shift键
    LEFT_SHIFT = SHIFT
    CONTROL = '\ue009'
    LEFT_CONTROL = CONTROL   #Ctrl 键
    ALT = '\ue00a'           #Alt 键
    LEFT_ALT = ALT
    PAUSE = '\ue00b'
    ESCAPE = '\ue00c'   #ECS键
    SPACE = '\ue00d'    #空格键
    PAGE_UP = '\ue00e'   #PgUp 键
    PAGE_DOWN = '\ue00f' #PgDwon 键
    END = '\ue010'    #END 键
    HOME = '\ue011'   #HOME 键
    LEFT = '\ue012'  #左键
    ARROW_LEFT = LEFT
    UP = '\ue013'    #上键
    ARROW_UP = UP
    RIGHT = '\ue014'
    ARROW_RIGHT = RIGHT  #右键
    DOWN = '\ue015'      #下键
    ARROW_DOWN = DOWN
    INSERT = '\ue016'    #insert键
    DELETE = '\ue017'    #del键

    SEMICOLON = '\ue018'  #';'键
    EQUALS = '\ue019'     #'='键
  #数字键盘
    NUMPAD0 = '\ue01a'  # number pad keys
    NUMPAD1 = '\ue01b'
    NUMPAD2 = '\ue01c'
    NUMPAD3 = '\ue01d'
    NUMPAD4 = '\ue01e'
    NUMPAD5 = '\ue01f'
    NUMPAD6 = '\ue020'
    NUMPAD7 = '\ue021'
    NUMPAD8 = '\ue022'
    NUMPAD9 = '\ue023'
    MULTIPLY = '\ue024' # '*' 键
    ADD = '\ue025'   # '+' 键
    SEPARATOR = '\ue026'  #','键
    SUBTRACT = '\ue027'  # '-' 键
    DECIMAL = '\ue028'   # '.'键
    DIVIDE = '\ue029'    #'/'键

    F1 = '\ue031'  # function  keys
    F2 = '\ue032'
    F3 = '\ue033'
    F4 = '\ue034'
    F5 = '\ue035'
    F6 = '\ue036'
    F7 = '\ue037'
    F8 = '\ue038'
    F9 = '\ue039'
    F10 = '\ue03a'
    F11 = '\ue03b'
    F12 = '\ue03c'

    META = '\ue03d'
    COMMAND = '\ue03d'

看到模块中包含了很多的按键但是真正实际使用的按键不多,所以我下面对按键的操作将一些方法介绍一下,就不会对所有的按键详细介绍。

1.首先我们了解下组合键,什么是组合键,比如我们经常使用的Ctrl + A ,Ctrl + C 等都是组合键。我们先看个例子

在使用按键操作的时候我们需要借助一下send_keys()来模拟操作,Keys.CONTROL 也就是我们键盘上的Ctrl键,下面是几个常用的组合键。

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)

我们下面使用Ctrl + A 来编写一个实例,看一下组合键的使用。

#-*- coding:utf-8 -*-
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_id('kw').send_keys('AAAAAAAAAAAA')
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')  #注意这里组合键的输入。
time.sleep(10)
driver.quit()

2.下面常用的键,这些常用键主要是非组合键,直接输入即可。

回车键 Keys.ENTER
删除键 Keys.BACK_SPACE
空格键 Keys.SPACE
制表键 Keys.TAB
回退键 Keys.ESCAPE
刷新键 Keys.F5

下面我们选择一个常用的键,来编写一个例子,使用回车键来代替鼠标的click()键

#-*- coding:utf-8 -*-
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("http://cn.bing.com/")
driver.find_element_by_id('sb_form_q').send_keys('selenium')
driver.find_element_by_id("sb_form_go").send_keys(Keys.ENTER)   #通过回车键来代替鼠标的左键
driver.quit()

这里我们可以看到跟鼠标的模拟效果是一样。

 
 

上面的两个例子说明了使用组合键和单个按键来操作元素,因为按键的使用起来比较简单,主要是认识每个按键代表的意思,这样我们就可以顺利的使用按键

python selenium-webdriver 元素操作之键盘操作的更多相关文章

  1. selenium webdriver(4)---模拟鼠标键盘操作

    webdriver提供Actions来模拟鼠标悬浮.拖拽和键盘输入等操作,详细代码见org.openqa.selenium.interactions.Actions.本文通过几个实例来说明Action ...

  2. [python爬虫] Selenium常见元素定位方法和操作的学习介绍

    这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~同时CSDN总是屏蔽这篇文章,再加上最近 ...

  3. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

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

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

  5. Selenium常见元素定位方法和操作的学习介绍

    参考地址: https://www.cnblogs.com/eastmount/p/4810690.html 这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操 ...

  6. Python Selenium Webdriver常用方法总结

    Python Selenium Webdriver常用方法总结 常用方法函数 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() 最大化窗口: m ...

  7. Python+Selenium+webdriver环境搭建(windows)以及相关资源下载链接

    今天记录一下测试小菜鸟alter在测试入门的一点关于python+Selenium+webdriver环境搭建的经历以及资源分享.欢迎交流学习,批评指正. 一.Python的下载与安装 1.pytho ...

  8. python selenium webdriver入门基本操作

    python selenium webdriver入门基本操作 未经作者允许,禁止转载! from selenium import webdriver import time driver=webdr ...

  9. python + selenium webdriver 通过python来模拟鼠标、键盘操作,来解决SWFFileUpload调用系统底层弹出框无法定位问题

    Webdriver是基于浏览器操作的,当页面上传文件使用的是flash的控件SWFFileUpload调用的时候,调用的是系统底层的文件选择弹出框 这种情况,Webdriver暂时是不支持除页面外的其 ...

随机推荐

  1. win7 64位下自行编译OpenCV2.4.10+CUDA toolkit 5.5的整个过程以及需要注意的问题(opencv+cuda并行计算元素的使用)

           首先说明的是,这个帖子是成功的编译了dll,但是这个dll使用的时候还是很容易出现各种问题的. 发现错误可能是由于系统安装了太多版本的opencv,环境变量的设置混乱,造成dll版本加载 ...

  2. 关于Block的使用和5点注意事项

    一.概念 首先需要了解的是Block是一个代码块,是一个变量的形式存在的. 二.构成了解 我们需要在函数中声明block,因为是变量的形式,而且存在静态变量形式 类型1:  NSString* (^b ...

  3. css选择器语法速查

    通用选择器 *{} 类似于通配符,匹配文档中所有元素类型: 类型选择器 h1,h2,p{} 匹配以逗号隔开元素列表中的所有元素 类选择器 .glass{} or p.glass{} id选择器 #id ...

  4. angularjs学习笔记之一

    directive 通过AngularJS模块API中的.directive()方法,我们可以通过传入一个字符串和一个函数来 注册一个新指令.其中字符串是这个指令的名字,指令名应该是驼峰命名风格的,函 ...

  5. 第四章:4.2MySQL 权限系统介绍

    4.2.1 权限系统简介 MySQL 的权限系统在实现上比较简单,相关权限信息主要存储在几个被称为granttables 的系统表中,即: mysql.User,mysql.db,mysql.Host ...

  6. JMS(Java平台上的专业技术规范)

    JMS(Java平台上的专业技术规范) 编辑   jms即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应 ...

  7. L1正则化比L2正则化更易获得稀疏解的原因

    我们知道L1正则化和L2正则化都可以用于降低过拟合的风险,但是L1正则化还会带来一个额外的好处:它比L2正则化更容易获得稀疏解,也就是说它求得的w权重向量具有更少的非零分量. 为了理解这一点我们看一个 ...

  8. SOFA 源码分析 — 自定义线程池原理

    前言 在 SOFA-RPC 的官方介绍里,介绍了自定义线程池,可以为指定服务设置一个独立的业务线程池,和 SOFARPC 自身的业务线程池是隔离的.多个服务可以共用一个独立的线程池. API使用方式如 ...

  9. hadoop中setup,cleanup,run和context讲解

    hadoop 执行中的setup run cleanup context的作用1.简介1) setup(),此方法被MapReduce框架仅且执行一次,在执行Map任务前,进行相关变量或者资源的集中初 ...

  10. JS入门熟知

    JS是面向对象的语言 封装 继承 多态 聚集(对象中具有引用其他对象的能力) JS使用中绝大多数情况不需要进行面向对象的设计,很多情况是使用已经设计好,准备好的对象,基于对象的语言. JS的使用(引入 ...