如何在使用 Python 的 Selenium 中执行拖放操作?


我们可以借助 Action Chains 类在 Selenium 中执行拖放操作。这些类通常用于自动化诸如上下文菜单点击、鼠标按钮操作、按键和鼠标移动之类的交互。

这些类型的操作主要在复杂的场景中很常见,例如拖放和将鼠标悬停在页面上的元素上。Action Chains 类的使用方法由高级脚本利用。我们可以借助 Selenium 中的 Action Chains 来操作 DOM。

action chain 对象以队列的形式实现 ActionChains,然后执行 perform() 方法。调用 perform() 方法时,将执行 action chains 上的所有操作。

创建 Action Chain 对象的方法如下:

  • 首先,我们需要导入 Action Chain 类,然后将驱动程序作为参数传递给它。

  • 现在,可以使用此对象执行所有 action chains 操作。

语法

创建 Action Chains 对象的语法:

from selenium import webdriver

# import Action chains
from selenium.webdriver import ActionChains
# create webdriver object
driver = webdriver.Firefox()
# create action chain object
action = ActionChains(driver)

创建 Action Chains 对象后,我们可以像队列一样一个接一个地执行许多操作。

drag_and_drop() - 此方法执行以下操作:按住源元素上的左键鼠标;然后移动到目标元素;最后释放鼠标按钮。

语法

drag_and_drop(args1, args2)

其中,args1 是执行鼠标按下操作的元素。

args2 是执行鼠标释放操作的元素。

#source
source = driver.find_element_by_link_text("Tutorialspoint")
#target
target = driver.find_element_by_link_text("Selenium")
#action chain object
action = ActionChains(driver)
# drag and drop operation
action.drag_and_drop(source, target)

示例

拖放操作的代码实现。

from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
#browser exposes an executable file
#Through Selenium test we will invoke the executable file which will then
#invoke actual browser
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
# to maximize the browser window
driver.maximize_window()
#get method to launch the URL
driver.get("https://jqueryui.jqueryjs.cn/droppable/")
#to refresh the browser
driver.refresh()
# identifying the source and target elements
source= driver.find_element_by_id("draggable");
target= driver.find_element_by_id("droppable");
# action chain object creation
action = ActionChains(driver)
# drag and drop operation and the perform
action.drag_and_drop(source, target).perform()
driver.close()

更新于:2020年7月29日

2000+ 次浏览

启动您的 职业生涯

完成课程获得认证

开始
广告