Python+Selenium自动化测试框架6--鼠标事件(单击、右击、双击、鼠标悬停、鼠标拖动)
1 # coding=utf-8 2 from selenium import webdriver 3 from selenium.webdriver.common.action_chains import ActionChains 4 import time 5 6 driver = webdriver.Chrome() 7 driver.implicitly_wait(5) 8 driver.maximize_window() 9 driver.get("http://www.baidu.com") 10 11 driver.find_element_by_xpath("//*[@id='kw']").send_keys("selenium") 12 print("鼠标单击操作") 13 driver.find_element_by_xpath("//*[@id='su']").click() # 鼠标单击“百度一下” 14 15 print("鼠标悬停操作") 16 click = driver.find_element_by_xpath("/html/body/div[1]/div[3]/div[1]/div[3]/div[2]/h3/a") # 定位到鼠标要操作的元素(Selenium_百度百科) 17 ActionChains(driver).move_to_element(click).perform() 18 time.sleep(3) 19 20 print("鼠标右击操作") 21 ActionChains(driver).context_click(click).perform() 22 time.sleep(3) 23 24 print("鼠标双击操作") 25 ActionChains(driver).double_click(click).perform() 26 27 print("鼠标推放操作") 28 click1 = driver.find_element_by_xpath("/html/body/div[1]/div[3]/div[1]/div[1]/table/tbody/tr/td/div[1]/div/ul/li/div") 29 ActionChains(driver).drag_and_drop(click, click1).perform() 30 time.sleep(3) 31 32 driver.quit()
通过上述代码可知:
鼠标事件对应的方法
•单击:click()
•右击:context_click()
•双击:double_click()
•鼠标悬停:move_to_element()
•鼠标拖动:drag_and_drop(source, target),source: 鼠标拖动的源元素,target: 鼠标释放的目标元素。
说明:
1.进行鼠标事件操作,需要导入相应的模块:from selenium.webdriver import ActionChains
2.调用 ActionChains()方法,在使用将浏览器驱动 driver 作为参数传入:ActionChains(driver)
3.模拟鼠标操作事件,在调用时需要传入定位到的元素:move_to_element(click)
4.执行所有 ActionChains 中存储的行为,要对整个操作事件进行提交动作:perform()