Selenium Drag-and-drop in IE11 using java script workaround in java -


i trying use java script workaround drag , drop working selenium web driver java on ie11 , chrome?? using selenium 3.4 java 1.8

here code :

**web element initialisation** @findby(how = how.css, css =".work-card-description.searchable-field")  private webelement wedragfrom;   @findby(how = how.css,css = "div.resource-schedule.resource-ui-droppable div.hour-line:nth-of-type(11)") private webelement wedragto;   **code** protected void draganddrop( webelement from, webelement to)throws ioexception,interruptedexception {         string basepath = new file("").getabsolutepath();          string jquery_url = "http://code.jquery.com/jquery-1.11.2.min.js";         final string jquery_load_script =(basepath + "/src/test/resources/jquery_load_helper.js");          string jqueryloader = readfile(jquery_load_script);          driver.manage().timeouts().setscripttimeout(10, timeunit.seconds);          javascriptexecutor js = (javascriptexecutor) driver;          js.executeasyncscript(jqueryloader,jquery_url);     js.executescript("jquery(function($) { " + " $('input[name=\"q\"]').val('bada-bing').closest('form').submit(); "                                     + " }); ");          string filepath =(basepath + "/src/test/resources/drag_and_drop_helper.js");          stringbuffer buffer = new stringbuffer();          string line;          bufferedreader br = new bufferedreader(new filereader(filepath));          while((line = br.readline()) != null) {             buffer.append(line);         }          string javascript = buffer.tostring();           javascript = javascript + "$('"+from+"').simulatedragdrop({ droptarget: '"+to+"'});";          ((javascriptexecutor)driver).executescript(javascript);         thread.sleep(1000); } 

error

org.openqa.selenium.javascriptexception: error: syntax error, unrecognized expression: [[firefoxdriver: firefox on (a57f702c-e519-4a71-98f8-015da1fba509)] -> css selector: .work-card-description.searchable-field] build info: version: '3.4.0', revision: 'unknown', time: 'unknown' system info: host: driver info: org.openqa.selenium.firefox.firefoxdriver rotatable=false, timeouts={implicit=0.0, pageload=300000.0, script=30000.0}, pageloadstrategy=normal, platform=any, specificationlevel=0.0, moz:accessibilitychecks=false, acceptinsecurecerts=true, browserversion=55.0.3, platformversion=6.3, moz:processid=6420.0, browsername=firefox, javascriptenabled=true, platformname=windows_nt}] session id: a57f702c-e519-4a71-98f8-015da1fba509 @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method) @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:62) @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:45) @ java.lang.reflect.constructor.newinstance(constructor.java:423) @ org.openqa.selenium.remote.http.w3chttpresponsecodec.createexception(w3chttpresponsecodec.java:150) @ org.openqa.selenium.remote.http.w3chttpresponsecodec.decode(w3chttpresponsecodec.java:115) @ org.openqa.selenium.remote.http.w3chttpresponsecodec.decode(w3chttpresponsecodec.java:45) @ org.openqa.selenium.remote.httpcommandexecutor.execute(httpcommandexecutor.java:164) @ org.openqa.selenium.remote.service.drivercommandexecutor.execute(drivercommandexecutor.java:82) @ org.openqa.selenium.remote.remotewebdriver.execute(remotewebdriver.java:637) @ org.openqa.selenium.remote.remotewebdriver.executescript(remotewebdriver.java:573) @ pageobject.optimiseschedulepage.draganddrop(optimiseschedulepage.java:180) @ pageobject.optimiseschedulepage.dragdropjobintodiary(optimiseschedulepage.java:120) @ webadmin.functionalitytest.draganddrop(functionalitytest.java:71) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:498) @ org.testng.internal.methodinvocationhelper.invokemethod(methodinvocationhelper.java:108) @ org.testng.internal.invoker.invokemethod(invoker.java:661) @ org.testng.internal.invoker.invoketestmethod(invoker.java:869) @ org.testng.internal.invoker.invoketestmethods(invoker.java:1193) @ org.testng.internal.testmethodworker.invoketestmethods(testmethodworker.java:126) @ org.testng.internal.testmethodworker.run(testmethodworker.java:109) @ org.testng.testrunner.privaterun(testrunner.java:744) @ org.testng.testrunner.run(testrunner.java:602) @ org.testng.suiterunner.runtest(suiterunner.java:380) @ org.testng.suiterunner.runsequentially(suiterunner.java:375) @ org.testng.suiterunner.privaterun(suiterunner.java:340) @ org.testng.suiterunner.run(suiterunner.java:289) @ org.testng.suiterunnerworker.runsuite(suiterunnerworker.java:52) @ org.testng.suiterunnerworker.run(suiterunnerworker.java:86) @ org.testng.testng.runsuitessequentially(testng.java:1301) @ org.testng.testng.runsuiteslocally(testng.java:1226) @ org.testng.testng.runsuites(testng.java:1144) @ org.testng.testng.run(testng.java:1115) @ org.testng.idearemotetestng.run(idearemotetestng.java:72) @ org.testng.remotetestngstarter.main(remotetestngstarter.java:123)


please me have tried workaround , action class not working @ me on both browser

some of other workaround on internet gets execute without error , doing nothing

as per knowledge in reading many posts think using java-script(drag_and_drop_helper.js) work sure , know somewhere missing something.

 **javascript(drag_and_drop_helper)**     (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); 


Comments

Popular posts from this blog

Sort a complex associative array in PHP -

vb.net - How to ignore if a cell is empty nothing -

recursion - Can every recursive algorithm be improved with dynamic programming? -