Default Options in Basic Robot Configuration
In the Configure Robots -> Basic -> Default Options dialog box, 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 the 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 the 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 and so on, 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 (Default browser only)
- 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. For the Classic browser 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 or a list 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 because 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 to test that the converter performs the desired action on the text.
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. The settings on this tab are only valid for Web automation robots.
- 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.
- 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
-
If this option is selected, an alert message produced by the JavaScript method alert() is ignored, otherwise an error is 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 to test that the converter performs the desired action on the text.
Load Page and Create Page steps.This option affects the way JavaScript is executed on pages that you load, that is the option is applicable to
- JavaScript Polyfills (Default browser only)
-
The default Kofax RPA browser (WebKit) does not support 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 does not 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 Tab
Default browser only
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
Classic browser only
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
Classic browser only
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 Execution Trace option is selected.This option is relevant only if the
- 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 Do Not Convert. You can 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 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.
Convert XML to HTML option.To view XML content with the applied XSLT transformation in the Applications view, select and clear the
- 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.
Migration Tab
Default browser only
This tab contains a migration log of the robot that was migrated from the Classic browser to the WebKit (Default) browser. The log lists all values that were changed during the migration. See Migrate a Robot to a Different Browser Engine for details.