selenium的html拖拽,如何在Python中实现Selenium HTML5拖放解决方案

通过javascript模拟HTML5拖放的建议方法如下。在您需要同时加载这两个文件“jquery”_助手.js和“拖放”_助手.js“在项目目录中。在

尝试给出文件的完整路径,如下面的代码所示。在

from selenium import webdriver

jquery_url = "http://code.jquery.com/jquery-1.11.2.min.js"

driver = webdriver.Firefox()

driver.get("http://html5demos.com/drag")

driver.set_script_timeout(30)

jquery_file = "D:\\projectfolder\\jquery_load_helper.js"

drag_file = "D:\\projectfolder\\drag_and_drop_helper.js"

# load jquery helper

with open(jquery_file) as f:

load_jquery_js = f.read()

# load drag and drop helper

with open(drag_file) as f:

drag_and_drop_js = f.read()

# load jquery

driver.execute_script(load_jquery_js, jquery_url)

# perform drag&drop

driver.execute_script(drag_and_drop_js + "$('#one').simulateDragDrop({ dropTarget: '#bin'});");和13;和13;

“jquery_load”的代码_助手.js“是:

和13;和13;

“拖放”代码_助手.js“是:

(function( $ ) {

$.fn.simulateDragDrop = function(options) {

return this.each(function() {

new $.simulateDragDrop(this, options);

});

};

$.simulateDragDrop = function(elem, options) {

this.options = options;

this.simulateEvent(elem, options);

};

$.extend($.simulateDragDrop.prototype, {

simulateEvent: function(elem, options) {

/*Simulating drag start*/

var type = 'dragstart';

var event = this.createEvent(type);

this.dispatchEvent(elem, type, event);

/*Simulating drop*/

type = 'drop';

var dropEvent = this.createEvent(type, {});

dropEvent.dataTransfer = event.dataTransfer;

this.dispatchEvent($(options.dropTarget)[0], type, dropEvent);

/*Simulating drag end*/

type = 'dragend';

var dragEndEvent = this.createEvent(type, {});

dragEndEvent.dataTransfer = event.dataTransfer;

this.dispatchEvent(elem, type, dragEndEvent);

},

createEvent: function(type) {

var event = document.createEvent("CustomEvent");

event.initCustomEvent(type, true, true, null);

event.dataTransfer = {

data: {

},

setData: function(type, val){

this.data[type] = val;

},

getData: function(type){

return this.data[type];

}

};

return event;

},

dispatchEvent: function(elem, type, event) {

if(elem.dispatchEvent) {

elem.dispatchEvent(event);

}else if( elem.fireEvent ) {

elem.fireEvent("on"+type, event);

}

}

});

})(jQuery);;和13;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值