2016-09-27 1 views
0

Ich habe versucht, Drag & Drop für Selenium WebDriver Test mit dem folgenden JavaScript-Aufruf zu simulieren, aber ich bekomme einen WebDriver-Fehler. Ich versuchte es auf diese Weise, wie mit Aktionen Klasse funktionierte auf keinem Browser (Firefox, Chrome).
Kann jemand sagen, was ich falsch mache?Fehler beim Versuch, Drag & Drop mit JavaScript für Selenium WebDriver Test durchzuführen

String filePath = "C://Work//Spica import files//drag_and_drop_helper.js"; 
String source = "li[draggable='true']"; 
String target = "#fieldCc"; 
StringBuffer buffer = new StringBuffer(); 
String line; 
BufferedReader br = null; 
try { 
    br = new BufferedReader(new FileReader(filePath)); 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 

try { 
    while((line = br.readLine())!=null) 
    buffer.append(line); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

String javaScript = buffer.toString(); 
javaScript = javaScript + "$('" + source + "').simulateDragDrop({ dropTarget: '" + target + "'});"; 
((JavascriptExecutor)getDriver()).executeScript(javaScript); 

Der Fehler, die ich bekommen ist:

org.openqa.selenium.WebDriverException: unknown error: Runtime.evaluate threw exception: SyntaxError: missing) after argument list (Session info: chrome=53.0.2785.116) (Driver info: chromedriver=2.9.248315,platform=Windows NT 6.3 x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 17 milliseconds Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09' System info: host: 'EN610188', ip: '172.16.116.151', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_91' Driver info: org.openqa.selenium.chrome.ChromeDriver Capabilities [{applicationCacheEnabled=false, rotatable=false, chrome={userDataDir=C:\Users\lgrecu\AppData\Local\Temp\scoped_dir5352_12600}, takesHeapSnapshot=true, databaseEnabled=false, handlesAlerts=true, version=53.0.2785.116, platform=WIN8_1, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}] Session ID: fe314c5e2184e76f1b3d934159ae2887 Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09' System info: host: 'EN610188', ip: '172.16.116.151', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_91' Driver info: driver.version: unknown

Antwort

1

Versuchen Sie, die einfache Anführungszeichen aus String source = "li[draggable='true']"; zu entfernen und versuchen jetzt. denke, es wird funktionieren.

String source = "li[draggable=true]"; 
+0

Danke, es hat funktioniert :) – Larisa

+0

gern gesehen :) wenn meine Lösung dann eine Stimme für sie machen gearbeitet. –

+0

Hast du eine Idee, wie ich diesen xpath konvertieren könnte: **. // * [contains (@ class, 'removable secure')] // span [@ title = 'value']/ancestor :: li **, in einen CSS-Locator? Ich muss dynamische xpaths für Simulation Drag-und-Drop-Aktion verwenden, so ** Wert ** wird durch mehrere Zeichenfolgen ersetzt – Larisa

Verwandte Themen