selenium的drag_and_drop无效的解决办法

概述:

​ 学习selenium的drag_and_drop函数时发现无效,经过搜索,参考lxlyes的做法并利用github的js代码实现,实现元素A拖动至元素B上的行为。我是一个代码搬运工!

具体实现:

​ 拖动元素的html代码(来源于此处

<!DOCTYPE HTML>
<html>
<head>
<style>
#div1 {
  width: 350px;
  height: 70px;
  padding: 10px;
  border: 1px solid #aaaaaa;
}
</style>
<script>
function allowDrop(ev) {
  ev.preventDefault();
}

function drag(ev) {
  ev.dataTransfer.setData("text", ev.target.id);
}

function drop(ev) {
  ev.preventDefault();
  var data = ev.dataTransfer.getData("text");
  ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>

<p>Drag the W3Schools image into the rectangle:</p>

<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<br>
<img id="drag1" src="本地图片.jpg" draggable="true" ondragstart="drag(event)" width="336" height="69">

</body>
</html>

​ python代码:

import time

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options=Options()
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
driver = webdriver.Chrome(options=chrome_options)
driver.maximize_window()#最大化

driver.get("你的html文件地址")

#加载jq
with open("./jQuery-3.6.0.min.js", "r") as js1:
	ans = js1.read()
driver.execute_script(ans)
#加载simulateDragDrop方法,来自github(https://gist.github.com/rcorreia/2362544)
with open("./simulateDragDrop.js", "r") as js1:
	ans = js1.read()
driver.execute_script(ans)

time.sleep(3)
driver.execute_script("$('#drag1').simulateDragDrop({ dropTarget: '#div1'});")#执行将drag1图片拖动至div1中
time.sleep(3)
driver.quit()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值