Options

Here, you can configure additional 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.
Alternatively, you can use OAuth credentials. OAuth is the preferred authentication mechanism for a number of popular REST APIs. Read more on how to use OAuth with Design Studio and the Management Console in the OAuth section of the documentation.
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:
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, e.g. because they don't work with TLS or because they don't accept the weaker security that SSL provides. It is possible to select between SSLv3 or its successor TLSv1, 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 the (somewhat outdated) SSLv2 "Hello" message. If this is not specified, an SSLv3/TLSv1 "Hello" message will be used (SSLv3 and TLSv1 have the same form of "Hello" message).
Browser to Emulate:
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 Kapow Katalyst's built-in browser.

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

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. Note that for clipping robots, this value is ignored if the robot configuration specifies that the language should be obtained from the user's browser.
Screen Size:
This property specifies which screen size to appear to have, if queried by JavaScript. Note that for clipping robots, this value is ignored if the robot configuration specifies that the screen size should be obtained from the user's browser.
Flash Version:
This property specifies which flash version to appear to support, if queried by JavaScript. Note that for clipping robots, this value is ignored if the robot configuration specifies that the supported flash version should be obtained from the user's browser.
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:
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:
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:
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:
Preload 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:
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. You should be careful when turning off this feature for clipping robots, since clipping robot may actually need to load the content of unsupported formats, e.g. for file download. 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:
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:
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, etc.

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:
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:
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 will fail in the event of a timeout. If enabled, the result received so far will be output.

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 patterns in the list of Included URL Patterns and Excluded URL Patterns, respectively. Only URLs occurring in the following tags may be blocked: 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.
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.
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, etc.

Execute JavaScript:
This property specifies whether JavaScript should be executed.
Ignore JavaScript Errors:
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 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:
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):
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:
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:
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.

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, etc.

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.kapowtech.com"

is executed, the trace will read

GET location = [location]

followed by a

SET [location].href = "http://www.kapowtech.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 normally not be changed, since they have been introduced to ensure backwards compatibility with older version of the product. If a new feature is introduce in the product that conflicts with the way things have been done previously, an option is introduced here that ensures that old robot will have this set to work in the old way and be backwards compatible. So for these options the default setting represents the new way and the other setting the old way.

Format Handling:
This specifies how to handle different document formats.
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.
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.
Enable Absolute Positioning:
This property specifies whether to attempt to correctly position visual components such as menus that are positioned using JavaScript.