Default Options

Here, you can configure default options of the action.

All Loading Tab

This tab contains general loading properties, used for both page loading and other types of loading.

Credentials

As credentials, you can either use standard username/password credentials or OAuth credentials. If you select Standard, the following properties are available:

Username

This property specifies which username to use for login. The value can be specified in several ways using a Value Selector. Note that this username is used only for HTTP and FTP based login. These types of login normally cause a pop-up window prompt in a browser, and are different from the typical and more commonly used form based method for login.

Password

This property specifies which password to use for login. The value can be specified in several ways using a Value Selector. Note that this password is used only for HTTP and FTP based login. These types of login normally cause a pop-up window prompt in a browser, and are different from the typical and more commonly used form based method for login.

See Web Authentication for more information.

Alternatively, you can use OAuth credentials. OAuth is the preferred authentication mechanism for a number of popular REST APIs. See OAuth on how to use OAuth in Design Studio and Management Console.

Client Certificate

This property defines where to get a client certificate when loading from HTTPS URLs. The client certificate may be given directly, or you may refer to one of those that have been installed as described in HTTPS Client Certificates. The options are:

  • Automatic Selects that one of the installed certificates which is marked as "default". If no certificates have been installed, or none of the installed ones are marked as "default", no client certificate will be used for the connection.

  • Installed Certificate Selects one of the installed certificates by giving its ID, which was defined when it was installed.

  • Certificate from Variable The certificate is given as the value of a binary variable. The certificate's password must be given as well, as the value of another variable.

  • ID from Variable Selects one of the installed certificates by giving its ID as the value of a variable.

SSL/TLS

This property specifies the version of SSL/TLS to use when loading from HTTPS URLs. This is configurable, because some sites give different results depending on the SSL/TLS version that is used, for example because they do not work with TLS or because they do not accept the weaker security that SSL provides. It is possible to select between SSLv3 or its successor TLS, or to accept both in negotiation with the site. In either case, it is possible to specify that the protocol negotiation should be initiated with SSL Hello or TLS Hello.

Verify SSL Certificates (Default browser only)

If this option is selected, the robot verifies the presented SSL certificate.

Browser to Emulate (Classic browser only)
This property specifies which browser you want the action to appear as when it loads something. Appearing as an older browser can sometimes provide you with a simpler page. However, we generally recommend that you stay with the default because this will normally cause the remote web server to serve up JavaScript etc. that is compatible with Kofax RPA's built-in browser.

For anonymization purposes, you should rather change the "HTTP User Agent" property which is described below.

Authentication Method
Select authentication protocol to use. You can select from NTLM and Negotiate. If you select Negotiate, you can add specific Negotiate protocol parameters. See Web Authentication for more information.
HTTP User Agent

This property specifies the exact text to send as the value of the HTTP User-Agent header. By default, the user agent header value is derived from the "Browser to Emulate". Changing the User-Agent header - perhaps in a random manner, obtaining the value from a variable - can be useful to better blend in with other requests to a remote web server.

Language

This property specifies which browser language to appear to have, both when queried by JavaScript and when loading something.

Screen Size

This property specifies which screen size to appear to have, if queried by JavaScript.

Flash Version (Classic browser only)

This property specifies which flash version to appear to support, if queried by JavaScript.

Referred from this URL

This property specifies which URL you want the action to appear to have been referred from when loading something. If you do not specify a URL, the action will appear to be referred from the current page in the robot.

Enable Cookies

This property specifies whether you want cookies to be enabled.

HTTP Cache

This property specifies how you want the robot to use HTTP caching.

Default browser engine

The default setting Enabled enables the HTTP Cache and caches HTTP responses based on the rules of HTTP caching. Disabled option disables HTTP caching. Aggressive option overrides cache directives and enables caching of the resources that are otherwise not cached. The Aggressive option may be helpful to boost performance of high latency sites.

Classic browser engine

The default setting is Standard. Standard HTTP Cache mode enables the HTTP Cache and transparently caches HTTP responses based on the rules of HTTP caching. Selecting Force Caching of JS and CSS will override the rules of caching and force the robot to cache JavaScripts and style-sheets, in some cases this will boost the performance of high latency sites. Selecting Disabled will disable all HTTP caching.

Max. Number of Attempts

This property specifies how many times you want to attempt execution of the action if a load error occurs. The minimum value is "1".

Time Between Attempts (s)

This property specifies how many seconds to wait between each attempt to execute the action.

Timeout for Each Attempt (s)

This property specifies how many seconds each attempt to execute the action is allowed to take before timing out. The value must be greater than zero.

Additional Headers to Send

This property specifies an optional variable that contains additional HTTP headers to send. The headers must be represented as a text, in the same format as in an HTTP message.

Store Received Status Code Here

This property specifies an optional variable in which to store received HTTP responses status code. The code will be an integer, and will correspond to the same response for which the received headers were obtained.

Store Received Headers Here

This property specifies an optional variable in which to store received HTTP headers. The headers will be represented as a text, in the same format as in an HTTP message.

Ignore Load Errors

This property specifies whether to ignore errors when the loading of a page or resource fails.

Page Loading Tab

This tab contains properties used specifically for loading pages.

Page Content Type

This property specifies the content type of the loaded pages. Usually, the "Automatic" setting should suffice, but you may also directly specify a content type, either for all pages loaded in the action or for only some of them, depending on their URL.

Page Content Encoding (Classic browser only)

This property specifies the character encoding of the loaded pages. The "Automatic" setting should work in most circumstances, but it may be necessary to specifically set the encoding of the pages, either for all pages and text resources (e.g. external JavaScript files) loaded in the action or for only some of them, depending on their URL.

Form Parameter Encoding (Classic browser only)

This property specifies which character encoding to use for encoding field values when submitting a form. Usually, the "Automatic" setting will be sufficient, but if you encounter problems with incorrect characters in the submitted data, you can try to set a specific encoding here.

Follow Meta Redirections

This property specifies whether to follow <meta>-tag redirections, i.e. redirections defined by a <meta> in a loaded page.

Apply XSL Style Sheets (Classic browser only)

This property specifies whether to apply referenced XSL style sheets when loading a page that contains XML. For instance, an XML document intended to be displayed in a browser can contain a reference to an XSL style sheet that transforms the XML document into HTML.

Use Preloading (Classic browser only)

Pre-load Javascript and style sheets in HTML documents, i.e. start loading the resources as soon as the HTML response from the web server is received. Enabling this option cuts down on the time that each step spends waiting for resource loads to complete because the loads are initiated before the robot reaches a state where it must block until the resources are ready.

Load Frames

This property specifies whether to automatically load the frames of a page.

Load Unsupported Formats (Classic browser only)

This property specifies whether to load the content of unsupported formats. An unsupported format is one that Design Studio cannot parse and present in the Page View, e.g. a video format. Often resources of such formats may take long to load and the robot may not be able to access the content so loading the content of the resource may just slow down the robots execution. The headers and status code are always obtained from the response even if loading of the contents is turned off. An additional use of this feature is to get the header information about a resource without loading it (in the case this is in an unsupported format). This is slightly different than just using a HEAD request, since a HEAD request only obtain the headers for the initial request and not resources obtained through META or JavaScript redirects.

Images to Load

This property specifies whether to automatically load the images of a page. Usually, it is not necessary for the robot to load the images, but you may choose to load the images of a page if you suspect that the image loading has side-effects that are necessary for the navigation of the page. In that case, you may choose to load all of the images on the page or only some, depending on their URL.

Max. Loads Per Window (Classic browser only)

This property specifies the maximum number of page loads per window allowed in the action. This can be used for stopping the page loading if an infinite loop of redirections or reloads are encountered. Such an infinite loop will eventually cause the action to time out anyway, but by detecting this earlier, you can avoid putting excessive load on the web server that you are accessing. The action will generate an error if it stops because the maximum number of page loads has been reached.

Max. Window Nesting (Classic browser only)

This property specifies the maximum number of window allowed nested inside each other. A window in this context can mean several things. In a frameset each frame is a window, so the Max. Window Nesting property specifies how many frames a loaded page can have inside each other. The action will generate an error if it stops because the maximum number of nested windows has been reached. If you check the Ignore Load Errors option, the step action will complete successfully and output a page containing no more than the maximum number of nested windows. If you leave the field blank, there is no limit to the window nesting level.

Page Changes

This property allows you to change the loaded pages on-the-fly before they are parsed. This is useful for things like correcting syntax errors, solving other parsing problems, removing or changing tags, and so on.

The changes are done by specifying one or more data converters that will be applied to the pages before the parsing. You can either specify data converters to apply on all pages, or data converters to apply to individual pages depending on their URL.

The most common data converters to use for page changes are Replace Text, Replace Pattern, and Remove Tags. When configuring the data converters, remember that they will be applied to the original, unprocessed text of the page, before decoding of ampersand encodings etc. Therefore, it is recommended that you obtain this text, e.g. using the View Source function of your standard browser. In the data converter configuration window, you can paste the text into the input area in the lower left corner and click the Test button to test that the converter performs the desired action on the text.

Note that if you want to make changes to JavaScript, use the JavaScript Changes property on the JavaScript Execution tab instead.

Page Error Test (Classic browser only)

This property specifies a custom test for website errors based on the content of the page. Usually, a website will send an error code when something goes wrong, but if this is not sufficient to detect errors, this property can be used.

If Same for All Pages is selected, the test is performed on all pages. By selecting Depends on URL, you may set up individual tests for particular (groups of) URLs.

You can specify a pattern that matches an error page (by selecting Pattern Matches Rejected Page), or you can specify a pattern matching all other pages (by selecting Pattern Matches Accepted Page).

Output Page If Error (Classic browser only)

This property specifies whether or not to output a page even if the website sends an error code. If disabled, any website error will cause the action to fail. If enabled, certain website errors are accepted and the page is output, whereas all other server errors will still cause the action to fail. The accepted website errors are 403 Forbidden, 404 Not Found, and 500 Internal Server Error.

Output Page If Timeout

This property specifies what occurs when the action times out. If disabled, the action fails in the event of a timeout. If enabled, the result received so far is the output. Note the following for this property:

  • When older Default browser (WebKit) robots that have FALSE as default for this property are opened in a new version of Kofax RPA, "Output Page If Timeout" is set to FALSE in the robot's browser configuration.

  • When creating a new Default browser robot, the "Output Page If Timeout" property is set to true by default.

  • When creating a new Classic browser robot, the "Output Page If Timeout" property is set to false.

URL Filtering Tab

This tab controls the configuration of what URLs to block, for instance to block the loading of ad frames.

Filter URLs

This property specifies whether to block loading of certain URLs. The URLs to be blocked are specified as pattern in the list of Included URL Patterns and Excluded URL Patterns, respectively. Only URLs occurring in the following tags may be blocked:

Included URL Patterns

If specified, only URLs that match these patterns will not be blocked. Each pattern must be written on a separate line. A URL that matches one of these patterns may still be blocked, if it matches one of the "Blocked URL Patterns" specified below. A typical use of this property is to specify a pattern that matches only URLs of a single domain, so that only frames and scripts from that domain are loaded.

  • <frame src="URL">
  • <iframe src="URL">
  • <script src="URL">

If a URL is blocked no request is performed and content is left empty. In the case of frame and iframes there will still be a new window in the page view and this will be showing a message explaining why the load was not performed. An icon on the tab of the window in the page view will indicate that the URL was blocked.

Blocked URL Patterns

This property specifies which URLs to block. This is specified by writing a list of patterns with one pattern on each line.

JavaScript Execution Tab

This tab contains properties used for executing JavaScript. These properties allow you to customize the JavaScript execution in case the default automatic execution does not work correctly. Note that using the options of the Logging tab, the Log window in Design Studio can provide information about the JavaScript execution performed during execution of the robot. You can use this window to understand which JavaScripts are executed, which errors occur, and so on.

Note Some of the properties on this tab differ in the Default and Classic browser engines.
Execute JavaScript

This property specifies whether JavaScript should be executed.

Ignore JavaScript Errors (Classic browser only)

This property specifies whether errors that occur during JavaScript execution should be ignored. In many cases, such errors can safely be ignored, as long as the outcome of the execution is as desired.

Ignore Alert Messages

f checked, an alert message produced by the JavaScript method alert() will be ignored, otherwise an error will be generated. Alert messages are typically created by JavaScript to alert the browser user of an invalid action, such as trying to submit a form that is not correctly filled out.

A common way to handle alert messages in a robot is to configure this property to ignore them, and then configure the Store Ignored Alert Messages Here property below so that ignored alert messages are stored in an appropriate variable. In a subsequent step, this variable can then be tested and suitable action taken if it contains an alert message.

Store Ignored Alert Messages Here

This property specifies a variable in which ignored alert messages should be stored. This is relevant only when the Ignore Alert Messages option has been selected above.

Enable Timer Events (Classic browser only)

This property specifies whether timer events should be executed. Timer events are events that occur after a specified amount of time and can be set up either by JavaScript using setTimeout() or setInterval() or when a <meta> redirection specifies that the page should be redirected after a number of seconds.

Max. Wait for Timer Events (ms) (Classic browser only)

This property specifies the maximum number of milliseconds to wait for timer events to be executed, since the beginning of the execution of the action. For example, if a page loads in 3000 ms and sets up some timer events, and this property has been set to 30000 ms, only timer events that expire within 27000 ms after the page load will be executed. Note that the wait for the timer events is done either in real-time or just emulated, depending on the Wait Real-Time for Timer Events property below.

Wait Real-Time for Timer Events (Classic browser only)

This property specifies whether to actually wait the time specified by the Max. Wait for Timer Events property above, or to just emulate the wait and execute any triggered timer events immediately. For many timer events, it is not necessary to actually wait the period specified, and thus the robot can immediately proceed. However, if the reason for the timer event is that e.g. one must wait for the web server to process results, it may be necessary to wait real-time.

Delay Between Key Presses (ms)

This property specifies the amount of milliseconds to wait between key presses when emulating a user typing on a keyboard. This only has relevance for step actions that enter text into a form.

Use CSS Style Sheets (Classic browser only)

This property specifies whether to load and parse CSS style sheets during the execution of the robot. This may be necessary for the JavaScript on a page to work correctly. On the other hand, disabling the use of style sheets can speed up the execution of page loads. Even if this option is disabled, the page view may still load style sheets for display purposes, but this loading will not take place when the robot runs on the server.

JavaScript Changes

JavaScript changes are an optional list of data converters that will be applied to the JavaScript before it is executed. The changes are applied to all JavaScript that is executed, both event handlers, internal and external scripts. The data converters are useful for making changes and corrections to the JavaScript. For example, they can be used to define variables that the JavaScript expects to have been defined by VBScript. The most common data converters to use for this purpose are Replace Text and Replace Pattern.

When configuring the data converters, remember that they will be applied to the original JavaScript. Therefore, it is recommended that you obtain this text, e.g. using the View Source function of your standard browser for inline JavaScript or by downloading the file in case of external JavaScript. In the data converter configuration window, you can paste the text into the input area in the lower left corner and click the Test button to test that the converter performs the desired action on the text.

Important This option affects the way JavaScript is executed on pages that you load, that is the option is applicable to Load Page and Create Page steps.
JavaScript Polyfills

The default Kofax RPA browser (WebKit) does not support a some of the ES5 and ES6 JavaScript features. To enable support for new functionality, Kofax RPA can load predefined or custom JavaScript polyfills.

A polyfill is a piece of code (usually JavaScript on the Web) that provides modern functionality in browsers that do not natively support it. For example, a polyfill can replicate the functionality of an HTML Canvas element in Microsoft Internet Explorer 7 using a Silverlight plugin, or provide support for CSS rem units, and other features.

In case of error, the JavaScript console shows which JavaScript object doesn't exist. According to this information, a necessary polyfill can be found and applied to resolve an error.

Click Add (+) to select an object or API that you want the browser to support. You can also include a custom code that provides support for certain JavaScript objects or API. To include a custom implementation, click Add (+) and select Custom in the list. The Custom dialog box contains two panes, such as Name and Code. Specify the name of your code implementation in the Name pane and paste your JavaScript code to the Code pane.

The JavaScript object implementation code is executed before the page loads.

See the list of predefined polyfills in Predefined JavaScript Polyfills.

But there are lots of modern JavaScript constructions, where applying polyfills does not resolve an error. See the list of JavaScript known issues, containing some of them, below.

  • The let statement

    CMAScript 2015 (6th Edition, ECMA-262)

  • Constants

    CMAScript 2015 (6th Edition, ECMA-262)

  • An arrow function expression () => {}

    CMAScript 2015 (6th Edition, ECMA-262)

  • Default function parameters

    CMAScript 2015 (6th Edition, ECMA-262)

  • for...of statement

    ECMAScript 2015 (6th Edition, ECMA-262)

  • Rest parameters

    ECMAScript 2015 (6th Edition, ECMA-262)

  • Method definitions

    var obj = {
              property( parameters… ) {},
              *generator( parameters… ) {},
              async property( parameters… ) {},
              async* generator( parameters… ) {},
    
              // with computed keys:
              [property]( parameters… ) {},
              *[generator]( parameters… ) {},
              async [property]( parameters… ) {},
    
              // compare getter/setter syntax:
              get property() {},
              set property(value) {}
            };
    

    ECMAScript 2015 (6th Edition, ECMA-262)

    ECMAScript 2016 (ECMA-262)

  • Fetch API

    fetch('http://example.com/movies.json')
              .then(function(response) {
                return response.json();
              })
              .then(function(myJson) {
                console.log(JSON.stringify(myJson));
              });
  • The Request interface of the Fetch API represents a resource request

    var a = new Request(url);

Plugins

This tab contains parameters to add and configure simulated plugins when using the browser.

Simulate support for
  • From List: Click the plus sign and select a plugin from the list.

  • From JSON Variable: Construct your own plugins using a JSON variable.

    See Plugin Simulation from JSON Variable for more details.

Javascript Event Handlers Tab

This tab contains properties that determine which JavaScript event handlers should be executed. Note that using the options of the Logging tab, you can obtain information about which event handlers are executed during execution of the robot, in the Log window in Design Studio.

Enable Click Event Handlers

This property specifies whether onclick event handlers, if any, are executed when clicking a tag.

Enable Change Event Handlers

This property specifies whether onchange event handlers, if any, are executed when modifying a value in a form.

Enable Form Event Handlers

This property specifies whether the onsubmit and onreset event handlers, if any, are executed when submitting or resetting a form, respectively.

Enable Load Event Handlers

This property specifies whether the onload and onunload event handlers, if any, are executed when loading / unloading a page or loading an image.

Enable Mouse Event Handlers

This property specifies whether the onmouseover, onmouseenter, onmouseout, onmouseleave, onmousedown and onmouseup event handlers, if any, are executed when moving the mouse over or clicking a tag.

Enable Drag Event Handlers

This property specifies whether the ondrag, ondragstart, ondragenter, ondragleave, ondragend and ondragover event handlers, if any, are executed when the mouse is dragged over a tag.

Enable Key Event Handlers

This property specifies whether the onkeydown, onkeypress and onkeyup event handlers, if any, are executed when entering text.

Enable Focus Event Handlers

This property specifies whether the onfocus, onfocusin, onfocusout, onblur, onactivate, onbeforeactivate and ondeactivate event handlers, if any, are executed when a tag or document gains or loses focus.

Enable Capture Event Handlers

This property specifies whether the onlosecapture event handlers, if any, are executed when a tag or document loses mouse capture.

Enable State Change Event Handlers

This property specifies whether the onreadystatechange event handlers, if any, are executed when the state of a tag or ActiveX object changes.

Enable Error Event Handlers

This property specifies whether the onerror event handlers, if any, are executed when an error occurs.

Logging Tab

This tab contains properties used to determine the level of logging of the JavaScript execution performed during execution of the robot. The logging information can then be obtained in the Log window in Design Studio and may be used to understand which JavaScripts are executed, which errors occur, and so on.

Log All JavaScript Source

This property specifies whether the source of all JavaScripts executed are logged. Note that the JavaScript may declare functions that themselves are not executed until they e.g. are called from an event handler. You may use the JavaScript Changes property to make changes and corrections in the JavaScript.

Log JavaScript Execution Trace

This property specifies whether to log a detailed trace of the JavaScript execution. This trace includes all functions that are called and all properties that are set or retrieved.

For example, when

location.href =
"http://www.kofax.com"

is executed, the trace will read

GET location = [location]

followed by a

SET [location].href = "http://www.kofax.com"

Include Function Source in Trace

This property specifies whether to include the source code of the functions executed, in the trace of the JavaScript execution.

Log JavaScript Event Handlers

This property specifies whether to log executed JavaScript event handlers.

Log Timer Events

This property specifies whether to log executed timer events. Timer events are events that occur after a specified amount of time and can be set up either by JavaScript using setTimeout() or setInterval() or when a <meta> redirection specifies that the page should be redirected after a number of seconds.

Log Loads

This property specifies whether to log all page and resource loads.

Log XML HTTP Requests

This property specifies whether to log XML HTTP Requests sent.

Log Absolute Positioning

This property specifies whether to log the absolute positioning of visual components such as menus that are positioned using JavaScript.

Max. Log Entries

This property specifies the maximum number of log entries allowed. The minimum value is "1". If there are more log entries than allowed, the first log entries will be discarded and will thus not appear in the Log window.

Legacy Tab

This tab contains properties that should not be changed in most cases. The legacy properties have been introduced to ensure backward compatibility with older version of the product. If a new feature is introduced in the product that conflicts with the way things were done previously, an option is introduced on this tab to ensure old robots will work and be backward compatible. On this tab, the default setting represents the current way and the other setting is the old way.

Format Handling

This option specifies how to handle different document formats.

Download non-HTML (Default)
Kofax RPA loads all supported non-HTML content to work with. You can preview CSV, JSON, text, Excel, XML, and binary content and apply step actions to them. Use the Preview button to change the type of the content.
Classic loading
You can specify how to handle different document formats for classic browser engine.
JSON

This property specifies how to handle JSON, which is one of the common response types when calling web services. The default is to convert the JSON to XML which makes it easy to handle in a standard way in Design Studio. Alternatively, it can be converted to HTML. The HTML is more humanly readable than XML, but somewhat harder to extract from automatically.

Convert XML to HTML

This property specifies whether to convert XML documents to HTML documents or keep them as-is. It is mainly used in old robots that work on the converted documents, as this was previously the only option. In newer robots, it is normally more convenient to work directly on the XML structure.

Note To view XML content with the applied XSLT transformation in the Applications view, select Configure Robot > Default Options: Configure > Legacy tab > Format Handling: Classic loading and clear the Convert XML to HTML option.
Convert Excel to HTML

This property specifies whether to convert Excel documents to HTML documents or keep them as-is. It is mainly used in old robots that work on the converted documents, as this was previously the only option. In newer robots, it is normally more convenient to work directly on the Excel document, as this provides a faster and more spreadsheet-like display and user interface.

CSV

This property specifies whether to convert CSV documents to HTML documents or keep them as text (in a PRE-tag). It is mainly used in old robots that work on the text representation, as this was previously the only option. In newer robots, it is normally more convenient to work on a HTML table representation of the CSV document and use the full power of Design Studio when doing so. It is assumed that the CSV documents is encoded using commas (,) as separator character, double quotes (") as quoting character and backslash (\) as escape character. If the document you are loading does not conform to this convention you should use the Convert to Text option and work on the document as text, e.g. using the Extract CSV step action.