Adobe Captivate: How to Cheat

Michael Barshinger
2 min readMay 10, 2018

--

As an e-Learning professional you find yourself debugging e-Learning from time to time which usually involves viewing the same e-Learning over and over again. Some e-Learning includes a Next button that allow you to skip forward, but many do not. In this post, I’m going to share how you can skip forward even if a Next button isn’t available.

Caveats

This works for e-Learning published from Adobe Captivate as HTML5. It will not work if it was published as FLASH.

Next Slide Please

You can navigate to the next slide by typing a command into your web browser’s developer tools as follows:

  1. Launch the e-Learning in the browser of your choice (use Chrome!)
  2. Press F12 to open the developer tools
  3. Select the Console tab
  4. Choose the frame containing the e-Learning (see screenshot below)
  5. Type cpAPIInterface.next() and press enter
  6. Press the up arrow to repeat as many times as you want
Chrome Console

Jump to a Specific Slide

Suppose you need to test something on a specific slide. You can type some code in to your web browser’s developer console to quickly jump to specific slide number.

This code jumps to slide #5.

var slide = 5;
var slides = cp.model.data.project_main.slides.split(",");
cpCmndGotoSlideByUIDAndResume = slides[slide-1].substring(5)

Warning: Jumping over slides often prevents Captivating from reporting completion to an LMS because frequently Captivate is set to report completions when a certain number of slides have been viewed as specified by the e-Learning content creator. In this next section, I’ll show you how to view all slides rapidly which can help you avoid this problem.

View All Slides (rapidly)

Now it’s time to get funky. You can quickly navigate through all slides using your web browser’s developer console too. Just copy and paste the following code into the developer console.

This code navigates to each slide, allowing it to play for 1/2 a second before navigating to the next slide.

function gotoSlide(slide, tm) { 
setTimeout(function() { cpCmndGotoSlideByUIDAndResume = slide; }, tm);
}
var slides = cp.model.data.project_main.slides.split(",");
for (var i=0; i<slides.length; i++) {
gotoSlide(slides[i].substring(5), i*500)
}

If you enjoyed this you might also enjoy this post that I wrote a while back:

Adobe Captivate: Javascript hacks to disable Playbar Slider & mark all slides viewed

--

--