webdriver 鼠标键盘事件
对于鼠标的操作,不单单只有click(),有时候还要用到右击、双击、拖动等操作,这些操作包含在ActionChains类中。
ActionChains类中鼠标操作常用方法:
1、右击:context_click()
from selenium.webdriver.common.action_chains import ActionChains
element=driver.find_element(By.XPATH,'//img[@id="s_lg_img"]') mouse=ActionChains(driver) mouse.context_click(element).perform()
2、在一个元素上按下鼠标左键:click_and_hold()
#模拟鼠标行为 在操作对象上暂停几秒并松开
element=driver.find_element(By.XPATH,'//a[@href="http://news.baidu.com"]')
mouse=ActionChains(driver)
mouse.click_and_hold(element).pause(10).release(element).perform()
3、鼠标移动到一个元素上:move_to_element()
#模拟鼠标行为 在移动到操作对象上并在显示出想要的对象后 点击该对象
element=driver.find_element(By.XPATH,'//a[@href="http://www.baidu.com/more/"]')
tag_element=driver.find_element(By.XPATH,'//a[@name="tj_zhidao"]')
mouse=ActionChains(driver)
mouse.move_to_element(element).click(tag_element).perform()
在实际的web测试工作中,需要配合键盘按键来操作,webdriver的
keys()类提供键盘上所有按键的操作,还可以模拟组合键Ctrl_a,Ctrl+c/v等
4、元素上的键盘操作
from selenium.webdriver.common.keys import Keys
driver.find_element(By.XPATH,'//input[@id="kw"]').send_keys('12306')
driver.find_element(By.XPATH,'//input[@id="kw"]').send_keys(Keys.BACKSPACE) # 退格键 1230
driver.find_element(By.XPATH,'//input[@id="kw"]').send_keys(Keys.TAB) #TAB键
5、网页上的键盘操作
ActionChains(driver).send_keys(Keys.TAB).perform()
6、组合键操作:ctrl+v
element=driver.find_element(By.XPATH,'//input[@id="kw"]')
ActionChains(driver).click(element).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
#备注:selenium中的修饰键用key_down 、key_up 修饰键有:shift\alt\ctrl
#只对网页中的组合键起作用 对操作系统的组合键不起作用 比如alt+F4 ctrl+alt+delete
ActionChains(driver).key_down(Keys.ALT).send_keys(Keys.F4).perform() #这样操作是没效果的