如何在使用 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()
广告