Selenium Webdriver - 操作类


Selenium 可以在 ActionsChains 类的帮助下执行鼠标移动、按键、悬停在元素上、拖放操作等。我们必须创建 ActionChains 类的一个实例,它将在队列中保存所有操作。

然后调用方法-perform,该方法实际上按照任务排队的顺序执行任务。我们必须添加语句 from selenium.webdriver import ActionChains 才能使用 ActionChains 类。

ActionChains 类的语法如下 -

#方法1 - 链式模式

e =driver.find_element_by_css_selector(".txt") 
a = ActionChains(driver) 
a.move_to_element(e).click().perform()

#方法 2 - 一个接一个地排队操作

e =driver.find_element_by_css_selector(".txt") 
a = ActionChains(driver) 
a.move_to_element(e) 
a.click() a.perform()

在上述两种方法中,动作都是按照调用的顺序一一执行的。

方法

ActionChains 类的方法如下:

  • click - 用于单击网络元素。

  • click_and_hold - 用于在网络元素上按住鼠标左键。

  • double_click - 用于双击网络元素。

  • context_click - 用于右键单击网络元素。

  • Drag_and_drop_by_offset - 用于首先在源元素上按下鼠标左键,导航到目标偏移量,最后释放鼠标。

  • Drag_and_drop - 用于首先在源元素上按下鼠标左键,导航到目标元素,最后释放鼠标。

  • key_up - 用于释放修饰键。

  • key_down - 用于按键而不释放它。

  • move_to_element - 用于将鼠标移动到网络元素的中间。

  • move_by_offset - 用于将鼠标移动到距当前鼠标位置的偏移量。

  • 执行- 用于执行排队的操作。

  • move_to_element_by_offset - 用于将鼠标移动特定网络元素的偏移量。偏移量是从网络元素的左上角开始测量的。

  • 释放- 用于释放网络元素上按住的鼠标按钮。

  • 暂停- 用于在特定持续时间内停止每个输入(以秒为单位)。

  • send_keys - 用于将密钥发送到当前活动元素。

  • reset_actions - 用于删除本地和远程保存的所有操作。

让我们点击链接 - 使用 ActionChains 方法的隐私政策 -

动作链

代码实现

ActionChains 类的代码实现如下 -

from selenium import webdriver
from selenium.webdriver import ActionChains
driver = webdriver.Chrome(executable_path='../drivers/chromedriver')
#implicit wait time
driver.implicitly_wait(5)
#url launch
driver.get("https://www.tutorialspoint.com/about/about_careers.htm")
#identify element
s = driver.find_element_by_link_text("Privacy Policy")
#instance of ActionChains
a= ActionChains(driver)
#move to element
a.move_to_element(s)
#click
a.click().perform()
#get page title
print('Page title: ' + driver.title)
#driver quit
driver.close()

输出

隐私政策

输出显示消息 - Process with exit code 0 表示上述 Python 代码执行成功。此外,应用程序的页面标题(从 driver.title 方法获取) - 关于Tutorials Point 的隐私政策 - Tutorialspoint 会打印在控制台中。