Skip to main content
Kofax

More information about the wekbit robot browser

Summary

13342

The Webkit robot browser was introduced in version 9.3 of Kapow and, since version 9.4, it's the default browser.

The previous browser (from versions 9.2 and earlier) is known as the "Classic" browser.

Migrate between robot browsers

There is an easy way to migrate a robot from Classic to Webkit and back (right click on the robot in Design Studio and select the option from the context menu). However, if a robot contains snippets, by default the migration process will attempt to migrate these as well. This is recommended because a robot can only use snippets of the same type of browser (e.g. a webkit robot can only use webkit snippets).

When to use webkit

Webkit browser will emulate more modern browsers (Chrome, Firefox), while Classic browser will work with websites that work in Internet Explorer.

Robots that were built with the Classic browser don't have to be migrated to Webkit, unless they don't work as expected (e.g. not all data rendered, javascript error messages).

Use webkit when...

  • the website loaded by the robot works in Chrome
  • the website contains complex javascript (Classic browsers can still execute javascript, but if any javascript errors are encountered, use Webkit)
  • the website contains HTML5 elements
  • you want to use steps like Extract Screenshot or Make Snapshot (these are only available in Webkit)

If a website ONLY works in Internet Explorer, the Classic robot browser has to be used

Webkit related errors

There are a few types of errors from Webkit robots:

  1.  
    • DBus$Error$NoReply: No reply within specified time
    • com.kapowtech.webkit.remote.RemoteWebKitException: cannot invoke operations on closed browser
    • com.kapowtech.webkit.remote.RemoteWebKitException: Browser process is gone

When a Webkit robot is run, the RoboServer starts a new kapowbrowser.exe process for it, and the D-Bus system allows the kapowbrowser process to communicate with the RoboServer process. Classic robots are executed in the same Java process used by the RoboServer, which is why they will not throw any errors like these.

The Kapowbrowser process runs outside the RoboServer JavaVirtual machine and can be monitored like any other process running on the machine (e.g. in Windows you can see it in Task Manager). Starting in version 9.5, the RoboServer Memory Usage graph (from the Dashboard tag of the Management Console) includes the memory used by kapowbrowser as well.

The errors above point to a disconnection between the kapowbrowser and the RoboServer JVM. Usually this is because the kapowbrowser process has crashed and the effect is a robot crash as well.

  1.  
    • com.kapowtech.webkit.remote.RemoteWebKitException: createSnapshot timed out after <n> ms
    • com.kapowtech.webkit.remote.RemoteWebKitException: revertToSnapshot timed out after <n> ms

When a robot is run in Design mode, it takes a snapshot (of web page/file, variables and robot state) before every step. Then, if the execution is moved to a previous step, the snapshot taken at that point is restored (so the developer can change/debug the robot using the state that existed at that time).
When the robot runs in Debug mode or on RoboServer, it doesn't take a snapshot before every step but only before steps to which it might come back: loop steps, try steps, branch points.
E.g. Before a For Each loop the robot will take a snapshot. Then, on each iteration this snapshot is restored so any changes done to the page/variables on previous iterations will not affect the current iteration.

There is one exception to this rule, for the Repeat loop. The snapshot is still taken, but at the end of the loop; this allows page navigation.

Both errors listed above refer to the snapshot (creation or restoring).

A very common cause for kapowbrowser process crashes or snapshot creation/restoring timeout is lack of resources (possibly a temporary lack of resources only). You should monitor the resources usage on the machine (memory, mostly) to make sure that enough resources are available for all the applications. Keep in mind that the wrapper.java.maxmemory parameter that can be set in RoboServer.conf only defines the maximum memory for the Java process, it does not limit the memory used by the kapowbrowser process(es).

If the resources are not a problem, please contact Kofax Technical Support:

Known Errors

A webkit robot can crash with errors caused by configuration settings or missing libraries.

Please see the following articles as well:

Knowledgebase article #12900  - Troubleshooting error message "Could not establish connection to WebKitBrowser: Failed to connect to bus <path to DBus>"
Knowledgebase article #12899 - Troubleshooting error message "Failed to load platform plugin "headless""
Knowledgebase article #12415 - Kapow Katalyst on Linux - "error while loading shared libraries: libGL.so.1: cannot open shared object file"

Keywords: webkit, kapowbrowser