鼠标键盘操作)"/>
Selenium自动化(鼠标键盘操作)
Selenium自动化(鼠标键盘操作)
一、模拟按键输入
driver.find_element_by_id('kw').send_keys("史蒂芬库里")
清除对象的内容,一般是对有默认值的时候:
time.sleep(3)
driver.find_element_by_id('kw').clear()
单击对象(此处实在百度官网测试):
driver.find_element(By.ID, "su").click()
提交表单,要求对象必须是表单:
driver.find_element_by_id('form').submit()
返回对象的尺寸(百度官网的搜索框):
a = driver.find_element_by_css_selector('#kw').size
print(a)
二、鼠标键盘事件
需要引入Selenium内置的ActionChains模块
from selenium.webdrivermon.action_chains import ActionChains
右击:
e = driver.find_element_by_id('kw').send_keys("史蒂芬库里")
ActionChains(driver).click(e).release(e).perform()
双击:(但常用的是click()函数)
driver.find_element_by_id('su').double_click()
左键单击、以及单击拆分
f = driver.find_element_by_id('kw').send_keys("史蒂芬库里")
ActionChains(driver).click(f).perform() # 按住
ActionChains(driver).click_and_hold(f).release().perform()
左键双击:
g = driver.find_element_by_css_selector('#s-top-left > a:nth-child(3)')
ActionChains(driver).double_click(g).perform()
右键单击:
i = driver.find_element_by_css_selector('#s-top-left > a:nth-child(3)')
ActionChains(driver).context_click(i).perform()
拖动、拖拽(某宝电商网站测试):
j1 = driver.find_element_by_id('nc_1_nl2')
j2 = driver.find_element(By.CLASS_NAME, 'nc-lang-cnt')
ActionChains(driver).drag_and_drop(j1, j2).perform() # 拖到一半loc = j1.location
siz = j2.size
print(loc['x'],loc['y'])
print(siz['width'], siz['height'])
ActionChains(driver).drag_and_drop_by_offset(j1, loc['x']+siz['width'], loc['y']+siz['height']).perform()
移动:
k = driver.find_element(By.CSS_SELECTOR, '#s-top-left > a:nth-child(3)')
ActionChains(driver).move_to_element(k).perform()
按键(先定位元素,再按键):
from selenium.webdrivermon.keys import Keys #需要导入keys这个模块
from selenium.webdrivermon.action_chains import ActionChains
driver.find_element_by_id('kw').send_keys('abc')
#ActionChains(driver).send_keys(Keys.TAB).perform()
复制 ctrl+c ctrl+v (在使用修饰键的时候需要key_down()和key_up()方法 修饰键包含 ctrl alt shift,类似alt+F4 ctrl+alt+delete不能使用)::
#模拟键盘输入 a
ActionChains(driver).key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform()
# 单击一下(复制了)
ele = driver.find_element_by_id('kw')
ActionChains(driver).click(ele).perform()
# 再粘贴
ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
常用键盘key对照:
BACK_SPACE = BACKSPACE #删除键
TAB = '\ue004' #TAB键
ENTER = '\ue007' #回车键
SHIFT = '\ue008' #Shift键
LEFT_SHIFT = SHIFT
CONTROL = '\ue009'
LEFT_CONTROL = CONTROL #Ctrl 键
ALT = '\ue00a' #Alt 键
LEFT_ALT = ALT
PAUSE = '\ue00b'
ESCAPE = '\ue00c' #ECS键
SPACE = '\ue00d' #空格键
PAGE_UP = '\ue00e' #PgUp 键
PAGE_DOWN = '\ue00f' #PgDwon 键
END = '\ue010' #END 键
SEMICOLON = '\ue018' #';'键
EQUALS = '\ue019' #'='键
更多推荐
Selenium自动化(鼠标键盘操作)
发布评论