一、前言
大家在做selenium测试时,是否会遇到在网页上需要执行一些鼠标操作,如右键选择一些设置,或者双击点赞,双击放到屏幕等等,但是在日常使用中还是习惯使用selenium的基本库,而忽略了其实selenium也是有提供了丰富的鼠标操作库,通过动作链 (ActionChains)就可以实现上述操作。
二、Selenium 4 的鼠标操作
我们今天用到的是selenium内的动作链 (ActionChains),可以模拟鼠标操作,比如左键单击,右键单击、双击、长按等等。但是看名字可以知道,动作链就是将动作行程一整个链条去执行,通过在操作后面加上.perform()
去实行操作内容,我们可以通过这样调用:
#创建动作链实例
chains = ActionChains(driver)
#需要操作的元素
menu = driver.find_element_by_css_selector(".nav")
hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1")
#执行动作链
chains .move_to_element(menu).click(hidden_submenu).perform()
也可以通过这样调用:
#创建动作链实例
chains = ActionChains(driver)
#需要操作的元素
menu = driver.find_element_by_css_selector(".nav")
hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1")
#执行动作链
chains .move_to_element(menu)
chains .click(hidden_submenu)
chains .perform()
但是需要注意的是,.perform()
是执行对应所创建的动作链实例内所写的操作,如果有多个操作,且中间会穿插其他selenium操作的话,需要在每次执行.perform()
操作之前,重新创建动作链实例,否则会重复执行上一个动作链操作。如:
#创建动作链实例
chains = ActionChains(driver)
#需要操作的元素
menu = driver.find_element_by_css_selector(".nav")
hidden_submenu = driver.