selenium的键盘与鼠标的操作

在做selenium自动化脚本的时候,有时候难免会用到键盘鼠标的操作,比如全选Ctrl+A,比如鼠标右击,所以学习掌握键盘和鼠标的操作也是很重要的。

一、键盘操作

首先导包,记住,Keys和ActionChains都是在webdriver的common里的

from selenium.webdriver.common.keys import Keys

键盘操作都是在send_keys()里面通过改变参数实现的
常用的键盘操作有
send_keys(Keys.BACK_SPACE) 删除键(BackSpace) send_keys(Keys.SPACE) 空格键(Space)
send_keys(Keys.TAB) 制表键(Tab)
send_keys(Keys.ESCAPE) 回退键(Esc)
send_keys(Keys.ENTER) 回车键(Enter)
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)
send_keys(Keys.F5)键盘F5,和refresh一样都是刷新

这里举个例子,selenium对输入框的内容部分剪切复制并粘贴
部分剪切:
1.可以删除一部分再全选剪切并复制:

 #循环删除后面4个字
for i in range(4):
    element.send_keys(Keys.BACKSPACE)
#剩下的再全选 剪切 复制
element.send_keys(Keys.CONTROL,'a')
element.send_keys(Keys.CONTROL,'x')

2.可以按住shift+左键一个个选中:

element.send_keys(Keys.SHIFT,Keys.ARROW_LEFT,Keys.ARROW_LEFT,Keys.ARROW_LEFT,Keys.ARROW_LEFT)

下面是在百度搜索框输入,再去剪切一部分去搜索百度视频的全部代码

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
driver.implicitly_wait(1)
element=driver.find_element_by_id('kw')
element.send_keys('以家人之名第28集')
time.sleep(2)
driver.refresh()
#循环删除后面4个字
for i in range(4):
    element.send_keys(Keys.BACKSPACE)
#剩下的再全选 剪切 复制
element.send_keys(Keys.CONTROL,'a')
element.send_keys(Keys.CONTROL,'x')
#打开百度视频
driver.get('https://haokan.baidu.com/?sfrom=baidu-top')
#对剪切内容进行复制,并搜索视频
driver.find_element_by_id('search_input').send_keys(Keys.CONTROL,'v')
time.sleep(2)
driver.find_element_by_xpath('//*[@id="rooot"]/header/div/div/div[2]/div[2]').click() #点击搜索按钮

time.sleep(4)
driver.quit()

二、键盘

键盘的操作都是在ActionChains 类里,所以首先要导这个类

from selenium.webdriver.common.action_chains import ActionChains

对于键盘的操作 一定要注意最后都要perform()
常用的键盘操作有:
click(ele) 鼠标左键单击
context_click(ele) 鼠标右键单击
double_click(ele) 鼠标左键双击
drag_and_drop(source,target) 拖动到某个元素后松开
move_to_element(ele) 鼠标悬停在一个元素上
click_and_hold(ele) 鼠标左键单击,不松开
release 在某个元素上松开鼠标左键
drag_and_drop_by _offset(source,x,y) 拖拽到某一坐标然后松开
move_to_element(to_element) – 鼠标移动到某个位置
perform() 执行上述鼠标操作

键盘的操作先梳理一下步骤
首先要对ActionChains类进行实例化对象
Ctrl+单击点进去看这个类的方法在这里插入图片描述
可以看到它是带有一个参数的
action=ActionChains(driver)
第二步调用鼠标的方法,比如右击,调用context_click(元素)方法
ele=driver.find_element_by_id(‘kw’)
right=action.context_click(ele) #ele是元素的定位
第三步执行操作perform方法
right.perform()
联合起来写的代码就是
ActionChains(driver).context_click(ele).perform()

举个例子,进入百度首页的更多上悬停

from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains

driver=webdriver.Chrome()
driver.get('https://www.baidu.com/')
ele=driver.find_element_by_link_text('更多')
ActionChains(driver).move_to_element(ele).perform()

time.sleep(2)
driver.quit()

猜你喜欢

转载自blog.csdn.net/shenshenruoxi/article/details/108330386
今日推荐