Python+Selenium学习--鼠标事件
场景
前景讲解了鼠标的click()事件,而我们在实际的web产品测试中,有关鼠标的操作,不仅仅只有单击,有时候还包括右击,双击,拖动等操作,这些操作包含在ActionChains类中。
ActionChains类鼠标操作的常用方法:
- context_click() 右击
- double_click() 双击
- drag_and_drop() 拖动
- move_to_element() 鼠标悬停在一个元素上
- click_and_hold() 点击鼠标左键,不松开
鼠标事件
1.鼠标右击事件
#!/usr/bin/env python # -*- codinfg:utf-8 -*- ''' @author: Jeff LEE @file: 鼠标事件.py @time: 2018-09-21 14:14 @desc: ''' from selenium.webdriver.common.action_chains import ActionChains from selenium import webdriver import time driver = webdriver.Firefox() driver.get('https://www.baidu.com/') #定位需要右击元素 right = driver.find_element_by_id("kw") #对定位对象进行右击操作 ActionChains(driver).context_click(right).perform() time.sleep(2) driver.quit()
ActionChains用于生成用户的行为;所有的行为都存储在actionchains对象,通过perform()执行存储的行为
perform()执行所有ActionChains存储的行为,perform()同样也是ActionChains类提供的方法,通常他们配合使用
2.鼠标双击事件
#!/usr/bin/env python # -*- codinfg:utf-8 -*- ''' @author: Jeff LEE @file: 鼠标事件.py @time: 2018-09-21 14:14 @desc: ''' from selenium.webdriver.common.action_chains import ActionChains from selenium import webdriver import time driver = webdriver.Firefox() driver.get('https://www.baidu.com/') #定位需要双击元素 double = driver.find_element_by_id("kw") #对定位对象进行双击击操作 ActionChains(driver).double_click(double).perform() time.sleep(2) driver.quit()
对于操作系统的操作来说,双击使用比较频繁,带对于web而言,比较少
3.鼠标拖放操作
drag_and_drop(source,target)
在源元素上按下鼠标,然后移动到目标元素释放
source:鼠标按下的源元素
target:鼠标释放的目的元素
#!/usr/bin/env python # -*- codinfg:utf-8 -*- ''' @author: Jeff LEE @file: 鼠标事件.py @time: 2018-09-21 14:14 @desc: ''' from selenium.webdriver.common.action_chains import ActionChains from selenium import webdriver import time driver = webdriver.Firefox() driver.get('https://www.baidu.com/') #定位源元素 source = driver.find_element_by_id("xx") #定位目的元素 target = driver.find_element_by_id("xx") #执行移动操作 ActionChains(driver).drag_and_drop(source,target).perform() time.sleep(2) driver.quit()
4.移动鼠标到元素上
#!/usr/bin/env python # -*- codinfg:utf-8 -*- ''' @author: Jeff LEE @file: 鼠标事件.py @time: 2018-09-21 14:14 @desc: ''' from selenium.webdriver.common.action_chains import ActionChains from selenium import webdriver import time driver = webdriver.Firefox() driver.get('https://www.baidu.com/') #定位元素 above = driver.find_element_by_id("xx") #执行移动操作 ActionChains(driver).move_to_element(above).perform() time.sleep(2) driver.quit()
5.按下鼠标左键不松开
#!/usr/bin/env python # -*- codinfg:utf-8 -*- ''' @author: Jeff LEE @file: 鼠标事件.py @time: 2018-09-21 14:14 @desc: ''' from selenium.webdriver.common.action_chains import ActionChains from selenium import webdriver import time driver = webdriver.Firefox() driver.get('https://www.baidu.com/') #定位元素 aa=driver.find_element_by_id("su") #执行点击元素不松开 ActionChains(driver).click_and_hold(aa).perform() time.sleep(2) driver.quit()