1.通过元素的sendkeys实现简单的键盘操作:
#coding=utf-8
from selenium import webdriver
#要使用键盘操作,首先需要引入keys 包
from selenium.webdriver.common.keys import Keys
#import os
import time
driver = webdriver.Ie()
driver.get("http://www.mxvpnjsq.cc/member.php?mod=logging&action=login")
time.sleep(3)
driver.maximize_window() # 浏览器全屏显示
#driver.find_element_by_id("username_L70iK").clear()
driver.find_element_by_name("username").send_keys("1290800466")
#tab 的定位相相于清除了密码框的默认提示信息,等同上面的clear()
#通过.send_keys(keys.按键名称)调用按键:
#.send_keys(Keys.TAB) # 按TAB键
#.send_keys(Keys.ENTER) # 按回车键
driver.find_element_by_name("username").send_keys(Keys.TAB)
time.sleep(3)
driver.find_element_by_name("password").send_keys("15866584957")
#通过定位密码框,enter(回车)来代替登陆按钮
driver.find_element_by_name("password").send_keys(Keys.ENTER)
time.sleep(5)
driver.quit()
2.通过ActionChains类实现各种事件
from selenium.webdriver.common.action_chains import ActionChains
action=ActionChains(driver)
action.key_down(Keys.SHIFT).perform()#按下shift键
drinvr.find_element_by_xpath('xpath_path').click()#点击鼠标左键
action.key_up(Keys.SHIFT).perform()#松开shift键
#以上代码为shift+鼠标左键多选操作
action.key_down(keys.CONTROL).send_keys('a').key_up(keys.CONTROL).PERFORM()#ctrl+a键盘操作
#以下是键盘鼠标操作
click(on_element=None) ——单击鼠标左键
click_and_hold(on_element=None) ——点击鼠标左键,不松开
context_click(on_element=None) ——点击鼠标右键
double_click(on_element=None) ——双击鼠标左键
drag_and_drop(source, target) ——拖拽到某个元素然后松开
drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某个坐标然后松开
key_down(value, element=None) ——按下某个键盘上的键
key_up(value, element=None) ——松开某个键
move_by_offset(xoffset, yoffset) ——鼠标从当前位置移动到某个坐标
move_to_element(to_element) ——鼠标移动到某个元素
move_to_element_with_offset(to_element, xoffset, yoffset) ——移动到距某个元素(左上角坐标)多少距离的位置
perform() ——执行链中的所有动作
release(on_element=None) ——在某个元素位置松开鼠标左键
send_keys(*keys_to_send) ——发送某个键到当前焦点的元素
send_keys_to_element(element, *keys_to_send) ——发送某个键到指定元素
原文参考:http://blog.csdn.net/gaimechen/article/details/70155987