如何在使用 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.com/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+ 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.