selenium鼠标操作靠的是ActionChains(行为链)类,前面的文章我们已经介绍过,详情可以看ActionChains类,selenium的鼠标操作就不一一举例了,本节把鼠标移动、拖拽、双击、长按常见操作罗列下。会使用一种方法自然也会用多种方法!(selenium视觉上看不出鼠标在移动,你可以用右键点击来证实下确实移动了,案例鼠标滚动移动网页下拉)
1、move_to_element(to_element)鼠标移动到指定元素
from selenium import webdriver
from selenium.webdriver import ActionChains
element = driver.find_element_by_id('xxx')
ActionChains(driver).move_to_element(element).perform()
2、move_to_element_with_offset(to_element, xoffset, yoffset)
鼠标往右上方横向纵向各移动100
element = driver.find_element_by_id('xxx')
ActionChains(driver).move_to_element_with_offset(element, 100, 100).perform()
3、double_click(on_element=None)
双击元素,如果没有指定元素则在当前鼠标位置双击
element = driver.find_element_by_id('xxx')
ActionChains(driver).double_click(element).perform()
4、context_click(on_element=None)
在元素上点击鼠标右键,如果没有指定元素则在当前鼠标位置单击右键
element = driver.find_element_by_id('xxx')
ActionChains(driver).context_click(element).perform()
5、click_and_hold(on_element=None)
鼠标左键按下不松,如果没有指定元素则在当前鼠标位置
element = driver.find_element_by_id('xxx')
ActionChains(driver).click_and_hold(element).perform()
6、drag_and_drop(source, target)
按住 element1 元素,拖动到 element2 元素。
element1 = driver.find_element_by_id('source')
element2 = driver.find_element_by_id('target')
ActionChains(driver).drag_and_drop(element1, element2).perform()
7、drag_and_drop_by_offset(source, xoffset, yoffset)
向左上角横向纵向移动100。
element = driver.find_element_by_id('source')
ActionChains(driver).drag_and_drop_by_offset(element, -100, -100).perform()
8、dey_down(value, element=None)
标按下某个键不释放
ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()
9、key_up(value, element=None)
松开下某个键
ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()

这篇博客详细介绍了如何使用selenium的ActionChains类进行鼠标操作,包括移动、拖拽、双击和长按等。通过实例展示了各种方法的用法,如move_to_element、double_click、context_click等,帮助读者掌握在自动化测试中实现更复杂的交互操作。
209

被折叠的 条评论
为什么被折叠?



