Selenium自动化(鼠标键盘操作)------详细

136 篇文章 25 订阅
9 篇文章 1 订阅

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.webdriver.common.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.webdriver.common.keys import Keys   #需要导入keys这个模块
from selenium.webdriver.common.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'     #'='键
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值