我们在Selenium中有ActionChains类的概念。这些类通常用于自动化交互,例如上下文菜单单击,鼠标按钮操作,按键和鼠标移动。
这些类型的操作主要在复杂的场景中很常见,例如拖放以及将鼠标悬停在页面上的元素上。高级脚本利用了Action Chains类的方法。我们可以借助Selenium中的“动作链”来操纵DOM。
动作链对象以队列的形式实现ActionChains,然后执行该perform()方法。在调用该方法时perform(),将执行动作链上的所有动作。
下面列出了创建动作链对象的方法-首先,我们需要导入Action Chain类,然后将驱动程序作为参数传递给它。
现在,可以在此对象的帮助下完成动作链的所有操作。
语法
用于创建动作链对象的语法-
从硒导入webdriver# import Action chains
from selenium.webdriver import ActionChains
# create webdriver object
driver = webdriver.Firefox()
# create action chain object
action = ActionChains(driver)
创建动作链对象后,我们可以像排队的链一样一个接一个地执行许多操作。
语法m = driver.find_element_by_css_selector("#tutor")
submenu = driver.find_element_by_id("submenu")
actions = ActionChains(driver)
actions.move_to_element(m)
actions.click(submenu)
actions.perform()
以下列出了行动链下的一些重要方法-context_click()–此方法对页面元素执行右键单击操作。
click_and_hold()–此方法执行将鼠标左键按住到页面元素上的操作。
click()-此方法对页面的元素执行单击操作。
double_click()-此方法对页面的元素执行双击操作。
drag_and_drop()-此方法执行在源元素上按住鼠标左键的操作。然后移动到目标元素,最后释放鼠标按钮。
drag_and_drop()-此方法执行在源元素上按住鼠标左键的操作。然后移动到目标元素,最后释放鼠标按钮。
drag_and_drop_by_offset()-此方法执行将鼠标左键按住在源元素上的操作。然后移动到目标偏移量元素,最后释放鼠标按钮。
move_to_element()-此方法将鼠标移动到页面上元素的中间。
move_by_offset()-此方法将鼠标移动到距鼠标当前位置的偏移处。
key_up()–此方法释放修饰键。
key_down()–此方法仅执行发送按键操作,而不释放按键。
release()–此方法执行释放元素上按住的鼠标按钮的操作。
pause()-此方法在特定时间段内停止所有输入。
perform()-此方法执行一个接一个地排队的所有动作。
move_to_element_with_offset()-此方法将鼠标移动页面上指定元素的元素的偏移量。偏移量是相对于元素的左上角。
send_keys()–此方法执行将键发送到当前焦点的操作。
reset_actions()–此方法执行重置存储在本地以及远程上的所有操作的操作。