Я пытаюсь автоматизировать функцию перетаскивания на моем простом html-сайте (сохраненном в файле).Функция перетаскивания работает, если я вручную перетаскиваю изображение в поле перетаскивания.Но если я попытаюсь повторить тот же поток с Python и Selenium, изображение не будет перетаскиваться на целевой элемент.Как именно перетаскивание работает под капотом?Я что-то упустил в моем HTML-файле?Я уверен, что мой код Selenium правильный, он работает на других сайтах.
source_element = driver.find_element_by_id('image')
target_element = driver.find_element_by_id('drag-box')
ActionChains(driver).drag_and_drop(source_element, target_element).perform()
<head>
<title>Test Site</title>
<style>
#drag-box, #dummy-box {
width: 300px;
height: 300px;
padding: 10px;
border: 1px solid;
color: #aaaaaa;
float: left;
}
</style>
<script>
function allowDrop(event) {
event.preventDefault();
}
function drag(event) {
event.dataTransfer.setData("image", event.target.id);
}
function drop(event) {
event.preventDefault();
var data = event.dataTransfer.getData("image");
event.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>
<header class="header-content">
<h1>Welcome to the site!</h1>
</header>
<main class="main-content">
<img id="image" src="test-image.png" draggable="true" ondragstart="drag(event)">
</main>
<div id="dummy-box"></div>
<div id="drag-box" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
</body>
</html>
Файл открывается в моем браузере и элементы найдены, но ничего не происходит, когдаЯ выполняю перетаскивание.Я пробовал на Firefox и Chrome.Кроме того, браузеры и веб-драйверы обновлены.