热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

通过javascript模拟HTML5拖放的建议方法如下。在您需要同时加载这两个文件“jquery”_助手.js和“拖放”_助手.js“在项目目录中。在尝试给出文件的完整路径&#x

通过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;



推荐阅读
author-avatar
手机用户2502908547
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有