javascript - 尝试使用 JavaScript 执行 Selenium WebDriver 测试拖放时出错

标签 javascript selenium-webdriver drag-and-drop

我尝试使用以下 JavaScript 调用来模拟 Selenium WebDriver 测试的拖放,但出现 WebDriver 错误。我尝试了这种方式,因为 Actions 类在任何浏览器(Firefox、Chrome)上都不起作用。
有人能告诉我我做错了什么吗?

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);

我得到的错误是:

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

最佳答案

尝试从 String source = "li[draggable='true']"; 中删除单引号,然后立即尝试。猜猜它会起作用。

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

关于javascript - 尝试使用 JavaScript 执行 Selenium WebDriver 测试拖放时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39720614/

相关文章:

python - Selenium - 在脚本中提取 onclick 事件目标 url

python - 在 Python 中使用 selenium 循环下载文件

javascript - 在元素之间添加分隔符

javascript - 如何将数组压入数组

java - 以编程方式在网页上下载动态图像

jquery - 在 DragStart 事件中未设置 DataTransfer 对象

python - 在 Python (Windows) 中拖放多个文件

HTML5 : What should server do when user uploads folder?

javascript - 使用 Javascript 在点击时切换背景颜色

javascript - 在 JavaScript 函数中引用表格中的左侧单元格