1.鼠标单击,双击和右键操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
driver = webdriver.Firefox()
driver.get("http://sahitest.com/demo/clicks.htm")
#单击操作
click = driver.find_element_by_xpath("//input[@value='click me']")
#双击操作
double_click = driver.find_element_by_xpath("//input[@value='dbl click me']")
#右击操作
right_click = driver.find_element_by_xpath("//input[@value='right click me']")
ActionChains(driver).click(click).double_click(double_click).context_click(right_click).perform()
print(driver.find_element_by_name("t2").get_attribute("value"))
sleep(2)
driver.close()
2.鼠标移动操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
driver = webdriver.Firefox()
driver.get("file:///D:/Develop/LL/Seleninum/BaiduDemo/mouseover.htm")
write = driver.find_element_by_xpath("//input[@value='Write on hover']")
blank = driver.find_element_by_xpath("//input[@value='Blank on hover']")
result = driver.find_element_by_name("t1")
#移动鼠标到write元素
ActionChains(driver).move_to_element(write).perform()
print(result.get_attribute("value"))
#移动鼠标到当前位置(20,30)点
ActionChains(driver).move_by_offset(20,30).perform()
print(result.get_attribute("value"))
#移动鼠标到blank元素
ActionChains(driver).move_to_element(blank).perform()
print(result.get_attribute("value"))
#移动鼠标从blank元素到(-10,40)的地方
ActionChains(driver).move_to_element_with_offset(blank,-10,40)
print(result.get_attribute("value"))
sleep(2)
driver.close()
3.鼠标拖动操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
driver = webdriver.Firefox()
driver.get("file:///D:/Develop/LL/Seleninum/BaiduDemo/Mootools Drag and Drop Example.html")
dragger = driver.find_element_by_id("dragger")
item1 = driver.find_element_by_xpath("//div[text()='Item 1']")
item2 = driver.find_element_by_xpath("//div[text()='Item 2']")
item3 = driver.find_element_by_xpath("//div[text()='Item 3']")
item4 = driver.find_element_by_xpath("//div[text()='Item 4']")
#将dragger元素拖到item1位置
ActionChains(driver).drag_and_drop(dragger,item1).perform()
sleep(2)
#将dragger元素拖到item2位置
ActionChains(driver).click_and_hold(dragger).move_to_element(item2).release().perform()
sleep(2)
#将dragger元素拖到item3位置
ActionChains(driver).click_and_hold(dragger).release(item3).perform()
sleep(2)
#将dragger元素拖到(400,150)位置
ActionChains(driver).drag_and_drop_by_offset(dragger,400,150).perform()
sleep(2)
driver.close()
4.按键操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from time import sleep
driver = webdriver.Firefox()
driver.get("http://sahitest.com/demo/keypress.htm")
result = driver.find_element_by_xpath("//input[@name='t1']")
enter = driver.find_element_by_xpath("//input[@name='t2']")
keys_up = driver.find_element_by_xpath("//input[@id='r1']")
keys_down = driver.find_element_by_xpath("//input[@id='r2']")
keys_press = driver.find_element_by_xpath("//input[@id='r3']")
#检测keys_up操作
keys_up.click()
result.click()
ActionChains(driver).key_down(Keys.CONTROL,enter).key_up(Keys.CONTROL).perform()
print(enter.get_attribute("value"))
sleep(2)
#检测keys_down操作
keys_down.click()
result.click()
ActionChains(driver).key_down(Keys.SHIFT).key_up(Keys.SHIFT).perform()
print(enter.get_attribute("value"))
sleep(2)
#检测keys_press操作
keys_press.click()
result.click()
ActionChains(driver).send_keys('a').perform()
print(enter.get_attribute("value"))
sleep(2)
driver.quit()