注册 X
提交 注:点击提交后系统会发送邮件到邮箱验证!(仅支持中国大陆邮箱)
我已阅读并同意 服务条款
首页 > IT技术笔记 > 查看笔记

Python Selenium keys快捷键和键盘操作

附件下载:

keyboard.jpeg

在Python Selenium中怎么操作键盘呢?比如回车,CTRL+TAB这类键盘事件呢?这篇就是聊下怎么操作keys。

特殊按键和快捷键

键盘上有些特殊按键,比如CTRL键,SHIFT键;还有一些操作浏览器的快捷键,典型的就是使用CTRL+组合键。
这些键的使用都在selenium.webdriver.common.keys里
要操作按键的时候要imprt一下。下面程序就来演示一下,还是老规矩程序在py3.6测试通过:



		        
#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

#打开Chrome浏览器
driver = webdriver.Chrome(executable_path="C:/chromedriver.exe")
#浏览器最大化
driver.maximize_window()
#打开猿人学首页
driver.get('https://www.yuanrenxue.com')

#定位页面右上角的搜索图标并点击
try:
    element = WebDriverWait(driver,10).until(
        EC.presence_of_element_located((By.CLASS_NAME, "search-show"))
        )
    element.click()
except Exception:
    print('not locate search-show')
    driver.quit()
else:

    search = driver.find_element_by_class_name('search-input')
    search.send_keys(u'python教程')
    time.sleep(5)
    search.send_keys(Keys.RETURN)

    time.sleep(5)
    element = driver.find_element_by_tag_name('body')
    element.send_keys(Keys.DOWN)
    element.send_keys(Keys.DOWN)
    time.sleep(5)
    driver.quit()
		      

程序功能是点击网站右上角的搜索图标,在搜索框里输入Python教程并且按回车键。然后键盘点击向下按键两次。
输入按键是使用send_keys()方法。
回车键是Keys.RETURN,K是大写。我们在文件头已经import Keys。
其他的特殊按键还有:
Keys.TAB
tab键
Keys.SHIFT
shift键
Keys.CONTROL
CTRL键
Keys.ALT
Keys.SPACE
Keys.PAGE_UP
Keys.PAGE_DOWN
Keys.UP
Keys.DOWN
Keys.LEFT
Keys.RIGHT
Keys.F1
Keys.F5
Keys.F12
Keys.COMMAND
见名知意,挺简单的,上面只列举一部分按钮的写法,要看全部的请看你selenium安装路径的里的
C:\Python37\Lib\site-packages\selenium\webdriver\common
keys.py文件。这个路径是我的安装路径。

PS:看上面的向下按键是作用在body元素上的,动作要作用在正确的元素上,不然程序会报错,比如把向下按键作用在上面程序的input框上就会报错,因为input框又没法向下移动。比如向下,向上,CTRL+组合按键等等一般都作用在body元素上。

组合键的使用

上面举例了怎么操作键盘,只举例了单个按键的使用,还有经常使用CTRL+组合键的情况。再看演示程序,一看就明白。


	        
#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time


#打开Chrome浏览器
driver = webdriver.Chrome(executable_path="C:/chromedriver.exe")
#浏览器最大化
driver.maximize_window()
#打开百度首页
driver.get('https://www.baidu.com')
time.sleep(5)
element = driver.find_element_by_tag_name('body')
element.send_keys(Keys.CONTROL,'a')
element.send_keys(Keys.CONTROL,Keys.F4)
	      

上面是打开网站后使用ctrl+a全选,然后ctrl+f4关闭当前tab。

键入字符串

还有在输入框中输入字符串的情况,其实之前和上面的例子已经有了,还是使用send_keys()方法,参数传入字符串就好了,另外记住一点就是字符串要是unicode码的。



 打赏        分享



评论

邮箱: 昵称: