click_and_hold(src).move_to_element(tgt).release().perform()ActionChains(driver).release().perform() 或分步组合# 快速参考 from selenium.webdriver.common.action_chains import ActionChains src = driver.find_element(By.ID, "p6_source") tgt = driver.find_element(By.ID, "p6_target") ActionChains(driver) \ .click_and_hold(src) \ .move_to_element(tgt) \ .release() \ .perform()
操作步骤:
① 定位 p6_source(源)和 p6_target(目标)两个区域;
② 用 click_and_hold(source).move_to_element(target).release().perform() 组合执行;
③ 断言 p6_target 显示「已接收」或 p6_result 包含「释放完成」。
💡 提示:前端拖动 = mousedown→mousemove→mouseup,对应 Selenium 的 click_and_hold().move_to_element().release()。
# 练习 6 参考答案 · 释放(分步组合) from selenium.webdriver.common.by import By from selenium.webdriver.common.action_chains import ActionChains driver.get("https://autotest-505.pages.dev/mouse_op_practice.html") source = driver.find_element(By.ID, "p6_source") target = driver.find_element(By.ID, "p6_target") actions = ActionChains(driver) # 分步:按住 → 移动 → 释放 actions.click_and_hold(source) \ .move_to_element(target) \ .release() \ .perform() assert "已接收" in target.text