4、鼠标事件及键盘事件

Posted on 2019-08-21 21:31  小白猫001  阅读(178)  评论(0)    收藏  举报

一、鼠标事件

在webdriver中,关于鼠标操作的方法封装在ActionChains类中,常用的方法有:
1、perform()  执行所有ActionChains中存储的行为

2、context_click()   右击

3、double_click()    双击

4、drag_and_drop()   拖动

5、move_to_element()   鼠标悬停

 1 from selenium import webdriver
 2 from selenium.webdriver.common.action_chains import ActionChains
 3 driver = webdriver.Chrome()
 4 driver.get("https://www.baidu.com/")
 5 driver.implicitly_wait(10) #等待10秒钟
 6 driver.quit()  #关闭浏览器
 7 
 8 cliclk = driver.find_element_by_id("xx")
 9 #对定位到的元素执行鼠标右击的操作
10 ActionChains(driver).context_click(cliclk).perform()
11 #对定位到的元素执行悬停操作
12 ActionChains(driver).move_to_element(cliclk).perform()
13 #对定位到的元素执行双击操作
14 ActionChains(driver).double_click(cliclk).perform()
15 #执行元素的拖动操作
16 source = driver.find_element_by_id("xx")   #源元素
17 target = driver.find_element_by_id("xx")   #目标元素
18 ActionChains(driver).drag_and_drop(source,target).perform()
19 
20 # perform() 可以理解成是对整个操作的提交动作,执行ActionChains类中存储的行为

二、键盘事件

Keys()类提供了键盘上几乎所有按键的方法

1、常用的非组合的键

回车键:Keys.ENTER

删除键:Keys.BACK_SPACE

空格键:Keys.SPACE

制表键:Keys.TAB

回退键:Keys.ESCAPE

刷新键:Keys.F5

2、常用的组合键

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)

 1 from selenium import webdriver
 2 from selenium.webdriver.common.keys import Keys
 3 driver = webdriver.Chrome()
 4 driver.get("https://www.baidu.com/")
 5 driver.implicitly_wait(10) #等待10秒钟
 6 driver.quit()  #关闭浏览器
 7 
 8 cliclk = driver.find_element_by_id("xx")
 9 # 执行Ctrl+C
10 driver.find_element_by_id(cliclk).send_keys(Keys.CONTROL,'c')
11 # 执行删除
12 driver.find_element_by_id(cliclk).send_keys(Keys.BACK_SPACE)