selenium.webdriver.common.action_chains

ActionChains 实现

1. class selenium.webdriver.common.action_chains.ActionChains(driver)

ActionChains 是一种自动执行低级别交互的方法,例如鼠标移动,鼠标按钮操作,按键和上下文菜单交互。这对于执行更复杂的操作非常有用,例如悬停和拖放。

1.1. 生成用户操作。

在 ActionChains 对象上调用操作方法时,操作将存储在 ActionChains 对象的队列中。

当调用 perform() 时,事件将按它们排队的顺序触发。

ActionChains 可用于链式模式:

menu = driver.find_element_by_css_selector(".nav")
hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1")

ActionChains(driver).move_to_element(menu).click(hidden_submenu).perform()

或者可以逐个排队,然后执行:

menu = driver.find_element_by_css_selector(".nav")
hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1")

actions = ActionChains(driver)
actions.move_to_element(menu)
actions.click(hidden_submenu)
actions.perform()

无论哪种方式,动作都按照它们被调用的顺序一个接一个地执行。

1.2. ActionChains(driver)

创建一个新的 ActionChains。

  • 参数:

    • driver: 执行用户操作的 WebDriver 实例。

1.3. click(on_element=None)

单击元素。

  • 参数:

    • on_element: 要单击的元素。如果为 None,则单击当前鼠标位置。

1.4. click_and_hold(on_element=None)

在元素上按住鼠标左键。

  • 参数:

    • on_element: 鼠标按下的元素。如果为 None,则单击当前鼠标位置。

1.5. context_click(on_element=None)

在元素上执行上下文单击(右键单击)。

  • 参数:

    • on_element: 上下文单击的元素。如果为 None,则单击当前鼠标位置。

1.6. double_click(on_element=None)

双击元素。

  • 参数:

    • on_element: 双击的元素。如果为 None,则单击当前鼠标位置。

1.7. drag_and_drop(source, target)

在源元素上按住鼠标左键,然后移动到目标元素并释放鼠标按键。

  • 参数:

    • source: 在这个元素上按下鼠标左键

    • target: 移动到这个元素释放鼠标按键

1.8. drag_and_drop_by_offset(source, xoffset, yoffset)

在源元素上按住鼠标左键,然后移动一个偏移量并释放鼠标按键。

  • 参数:

    • source: 在这个元素上按下鼠标左键

    • xoffset: X 轴偏移量

    • yoffset: Y 轴偏移量

1.9. key_down(value, element=None)

仅发送按键,而不释放它。

只能与修饰键(Control,Alt 和 Shift)一起使用。

  • 参数:

    • value: 要发送的修饰键,修饰键常量在 Keys 类中定义

    • element: 要发送按键的元素,如果为 None,则发送到当前焦点元素

举例,按 ctrl+c:

ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()

1.10. key_up(value, element=None)

释放按键

  • 参数:

    • value: 要发送的修饰键,修饰键常量在 Keys 类中定义

    • element: 要发送按键的元素,如果为 None,则发送到当前焦点元素

举例,按 ctrl+c:

ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()

1.11. move_by_offset(xoffset, yoffset)

将鼠标移动到当前鼠标位置的偏移量。

  • 参数:

    • xoffset: X 轴偏移量,一个正整数或负整数

    • yoffset: Y 轴偏移量,一个正整数或负整数

1.12. move_to_element(to_element)

将鼠标移动到元素的中间。

  • 参数:

    • to_element: 要移动到的 WebElement。

1.13. move_to_element_with_offset(to_element, xoffset, yoffset)

将鼠标移动指定元素的偏移量。

偏移量相对于元素的左上角。

  • 参数:

    • to_element: 要移动到的 WebElement。

    • xoffset: X 轴偏移量

    • yoffset: X 轴偏移量

1.14. pause(seconds)

以秒为单位暂停指定持续时间内的所有输入

1.15. perform()

执行所有存储的操作。

1.16. release(on_element=None)

释放元素上的鼠标按钮。

  • 参数:

    • on_element: 鼠标移动的元素。如果为 None,则释放当前鼠标位置。

1.17. reset_actions()

清除已存储在远程端的操作。

1.18. send_keys(*keys_to_send)

将按键发送到当前焦点元素。

  • 参数:

    • keys_to_send: 要发送的按键,修饰键常量在 Keys 类中定义

1.19. send_keys_to_element(element, *keys_to_send)

将按键发送到元素

  • 参数:

    • element: 要发送按键的元素

    • keys_to_send: 要发送的按键,修饰键常量在 Keys 类中定义

© 2020 刘士. All rights reserved.

结果匹配 ""

    没有匹配的结果 ""