一、鼠标操作
鼠标是通过使用底层接口执行的,需要调用ActionChains对象来执行对应的方法
1、导入ActionChains类包
from selenium.webdriver.common.action_chains import ActionChains
2、ActionChains提供的鼠标操作方法
1) clickAndHold 它将移动到该元素,然后在给定元素的中间单击(不释放)
2) contextClick 此方法首先将鼠标移动到元素的位置, 然后在给定元素执行上下文点击(右键单击).
3)doubleClick 它将移动到该元素, 并在给定元素的中间双击.
4)moveToElement 此方法将鼠标移到元素的中间. 执行此操作时, 该元素也会滚动到视图中.
5)moveByOffset 此方法将鼠标从其当前位置(或0,0)移动给定的偏移量. 如果坐标在视图窗口之外, 则鼠标最终将在浏览器窗口之外.
6) dragAndDrop 此方法首先在源元素上单击并按住,然后移动到目标元素的位置后释放鼠标.
7)release 此操作将释放按下的鼠标左键. 如果WebElement转移了, 它将释放给定WebElement上按下的鼠标左键.
click() #单击
click_and_hold() #在特定元素上单击鼠标左键(不释放)
release() #抬起鼠标
double_click() #鼠标双击
move_to_element() #鼠标悬停到指定元素上
context_click() #鼠标右击
drag_and_drop() #拖动
3、执行鼠标操作方法
perform() -- 必须调用此方法,才能够在Ui页面当中看到鼠标操作效果
4、链式调用
ActionChains(driver).click_and_hold(drag_src_ele).move_to_element(mouse_on_ele).release().perform()
#通过鼠标按下某个元素->移动到某个元素上面去->鼠标释放->让动作生效
click_and_hold()、move_to_element()、perform()都是ActionChains类提供的实例方法。它们在类内部实现时,都return self(除perform())
5、使用步骤
使用链式调用
1)找到元素对象
2)链式
ActionChains(driver).move_to_element(mouse_on_ele).pause(2).drag_and_drop(drag_src_ele,drop_dst_ele).perfor
6、调用
- 一个一个多次调用
1)实例化ActionChains类
2)调用鼠标方法(可根据需求调多个)
# 1、实例化ActionChains类
ac = ActionChains(driver)
sleep(3)
# 2、调用鼠标方法(可根据需求调多个)
# 2.1 找到元素对象
loc = (By.ID, 'mouse_hover')
ele = driver.find_element(*loc)
# 2.2 调用鼠标方法,将元素对象作为参数传递
ac.move_to_element(ele)
# 3、调用perform()
ac.perform()
- 链式调用
1)找到元素对象
2)调用鼠标方法,将元素对象作为参数传递
3)调用perform()
# 鼠标悬浮、鼠标拖拽连着执行
# 先找到要操作的元素
mouse_on_ele = driver.find_element(By.ID, 'mouse_hover')
drag_src_ele = driver.find_element(By.ID, 'draggable')
drop_dst_ele = driver.find_element(By.ID, 'droppable')
ActionChains(driver).move_to_element(mouse_on_ele).pause(2).drag_and_drop(drag_src_ele,drop_dst_ele).perform()
二、按键操作
操作步骤
1)导入keys
from selenium.webdriver.common.keys import Keys
2)使用keys方法
- Enter
driver.find_element_by_id("kw").send_keys("柠檬班",Keys.ENTER)
- Control+C
river.find_element_by_id("kw").send_keys(Keys.CONTROL, "c")标签:web,调用,鼠标,ActionChains,元素,Selenium,element,操作,ele From: https://www.cnblogs.com/mango-93/p/18048200