模拟键盘事件

上节我们了解了浏览器对象的操作,这节我们将上节内容完善下,学下键盘事件,废话不多说,搞起来~

一、模拟键盘按键

从之前的内容我们了解到,在进行点击事件的时候,我们知道click()方法可以实现模拟鼠标点击,那么可能有人会问道,那怎么模拟Enter呢?

这样模拟:

导入keys包

直接调用send_keys()方法即可

例子:

之前我们这样做实现搜索:

#encoding=utf-8

from selenium import webdriver

import time

fuck_test=webdriver.Chrome()

fuck_test.get("https://www.baidu.com")

fuck_test.find_element_by_id("kw").send_keys("fuck_test")

fuck_test.find_element_by_id('su').click()

现在我们这样做:

#encoding=utf-8

from selenium import webdriver

import time

fuck_test=webdriver.Chrome()

fuck_test.get("https://www.baidu.com")

fuck_test.find_element_by_id("kw").send_keys("fuck_test")

fuck_test.find_element_by_id("kw").send_keys(keys.Keys.ENTER)

就可实现通过定位密码框,不用定位搜索框实现回车搜索

相信大家在账户登录,文本换行的时候都会用到ENTER回车,很有用的一个键盘事件

其他的键盘事件,比如TAB,BACKSPACE,CTRL,ALT等请查看keys库,写的很全:

二、组合键盘事件

举个栗子:

#encoding=utf-8

from selenium import webdriver

import time

fuck_test=webdriver.Chrome()

fuck_test.get("https://www.baidu.com")

fuck_test.find_element_by_id("kw").send_keys("fuck_test")

time.sleep(5)

fuck_test.find_element_by_id('kw').send_keys(keys.Keys.CONTROL+"a")#选中

fuck_test.find_element_by_id('kw').send_keys(keys.Keys.CONTROL+"x")#剪切

fuck_test.find_element_by_id("kw").send_keys("phyger")#重新输入

fuck_test.find_element_by_id("kw").send_keys(keys.Keys.ENTER)

上面的例子进行了:先输入“fuck_test”,发现输入有误,选中,剪切,重新输入“phyger”进行搜索的整个过程

主要意义是展示键盘组合事件的发生

三、关于send_keys()中文乱码的问题

在selenium2中,send_keys(“中文”)的时候回报编码错误的问题,我们只需要在中文前面加“u”即可,即:send_keys(u“中文”)

ok,今天就到这,短小精悍是我们的目标,祝你看的愉快~

兄dei~如果你觉得还行,可以分享到朋友圈,大家一起学习,共同进步~

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180314G08F3L00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券