Node Documentation

This documentation is automatically generated with each new release of the Selenium Nodes and contains the description for each Selenium KNIME node. It is indentical to the node descriptions which are available directly within the KNIME application as well: Go to View → Node Description or click the button with the question mark in one of the nodes’ configuration dialogs.

Did you know? You can also find this documentation on NodePit — the world’s first search engine that allows you to easily search, find and install KNIME nodes and workflows.

Icon for node 'Alert'Alert#

This node allows interacting with JavaScript-based alert, confirm, and prompt dialog boxes. When a WebBrowser shows a dialog, these can be dismissed or confirmed. Further, it allows to extract a dialog’s text and send keyboard input to the dialog. The node assumes, that a dialog box is currently shown in the browser window.

For this node to work with Chrome-based browsers or Firefox, you must set the unhandledPromptBehavior capability to ignore, otherwise the alerts will be automatically dismissed without the possibility of any interaction. You can use the predefined “Don’t auto-dismiss alerts” snippet in the Start WebDriver or WebDriver Factory node.

Important: This node cannot be used for HTTP authentication dialogs. In case you need to authenticate this way, you can send the credentials directly through the “Navigate” node. Add username and password to your URL like this: https://username:password@example.com (works with Chrome-based browsers and Firefox). Alternatively have a look at the Authenticate (HTTP Basic) node.

OptionDescription
WebDriver inputInput column which provides the WebDriver(s)
DismissClose the dialog by clicking the “Cancel” button.
AcceptClose the dialog by clicking the “OK” button.
Append column with textExtract the dialog’s message and append it as text column.
Send keysThe text to send to the dialog (in case it is a “prompt” dialog).
PortsDescription
▸ 0Table with a column providing a WebDriver with an open alert, confirm, or prompt box.
0 ▸Same as input table, and appended text column in case the “Append column with text option was selected.

Icon for node 'Alert Is Present'Alert Is Present#

This condition checks if the page currently shows an alert.
PortsDescription
0 ▸Condition

Icon for node 'And'And#

Provides a logical “and” condition of the provided input conditions. The resulting condition will check each input condition until all of them are fulfilled.
PortsDescription
▸ 0First condition
▸ 1Second condition
0 ▸And-combined input conditions

Icon for node 'Attribute Matches'Attribute Matches#

This condition checks that the attribute value of an element matches a certain pattern.
OptionDescription
ByThe search criterion (see “Find Elements” node for more details).
QueryThe query which addresses the expected elements.
Attribute NameName of the attribute or CSS property to check.
Value PatternThe pattern which much match to attribute or CSS value.
PortsDescription
0 ▸Condition

Icon for node 'Authenticate (HTTP Basic)'Authenticate (HTTP Basic)#

Configure authentication for HTTP Basic. Enter a username and password which will be used if a HTTP Basic authentication dialog would show up.

Note: This is only intended for HTTP Basic authentication – not for form-based authentication!

This node requires a Chrome-based browser.

OptionDescription
HostnameRestrict username and password to a given hostname. You can use regular expressions, such as *\.hostname\.com to restrict to hostname.com and subdomains, or match all hostnames using .*
Username and PasswordThe username and password for the authentication.
CredentialsUse a “Credentials” flow variable to provide the username and password.
PortsDescription
▸ 0Table which contains a WebDriver.
0 ▸Same as input table with the authentication applied.

Icon for node 'Bulk RemoteWebDriver Factory'Bulk RemoteWebDriver Factory#

Creates a factory loop for RemoteWebDrivers using different configurations.

OptionDescription
URLThe remote server URL
PortsDescription
▸ 0Table with the configuration rows for the WebDriver.
0 ▸A configured WebDriver factory.
1 ▸A table with the current row of the configuration input.

Icon for node 'Clear'Clear#

Clears a WebElement in case it is a text entry element (input or textarea). In case the element is of different type, this node has no effect on the element. Note, that this does not fire any keyboard or mouse events. If you need this, use a Send Keys node instead, and send backspace keys to delete the element’s content, then send a tab key to ensure that a change event is fired.

OptionDescription
Search ModeSelect “Input Column” if your input table already contains the WebElement which you want to use. Otherwise select “Find Element(s)” to open a picker dialog which allows you to chose the WebElement(s). For more information about the dialog, please check the documentation of the “Find Elements” node.
Input(when mode is “Input Column”) Input column which provides the WebElement(s)
Remove input column(when mode is “Input Column”) Removes the input column from the result table
Selector(when mode is “Find Element(s)”) Click the “Edit” button to open the picker dialog.
PortsDescription
▸ 0Table with a column providing WebElements to clear
0 ▸Same as input table

Icon for node 'Click'Click#

Clicks on a WebElement. In case the click causes a new page to load, the execution of this action will attempt to block until the page has loaded (depending on various circumstances, it will not block, however). In this case, all existing WebElements referring to the previous page will become invalid, because the page is no longer available.

In case the click causes a new page to load via an event, the action will not block. In this case, you need to determine on your own, when the page has reloaded or simply wait for a fixed amount of time until you proceed with further execution.

OptionDescription
Search ModeSelect “Input Column” if your input table already contains the WebElement which you want to use. Otherwise select “Find Element(s)” to open a picker dialog which allows you to chose the WebElement(s). For more information about the dialog, please check the documentation of the “Find Elements” node.
Input(when mode is “Input Column”) Input column which provides the WebElement(s)
Remove input column(when mode is “Input Column”) Removes the input column from the result table
Selector(when mode is “Find Element(s)”) Click the “Edit” button to open the picker dialog.
Click TypeThe type of click to perform (left, right, or double click)
PortsDescription
▸ 0Table with a column providing WebElements to click
0 ▸Same as input table

Icon for node 'Cookies'Cookies#

Gets or deletes cookies for the current WebDriver. There’s two methods available – see below for details.
OptionDescription
InputInput column which provides the WebDriver
ActionThe action to perform: “Get” or “Delete” the cookies.
MethodThe following methods are available:
  • JavaScript: Extracts cookies through JavaScript (essentially via document.cookie). This works in every browser, but will not return cookies which are declared as “HTTP only”. Only cookies for the current domain are returned.
  • Chrome DevTools: Extracts all cookies through the Chrome DevTools (CDT) API – this will get you all cookies for all doamins, but only works in Chrome-based browsers.
PortsDescription
▸ 0Table with a column providing the WebDriver
0 ▸Same as input table
1 ▸A table with extracted cookies information. The table contains the following columns:
  • name: The name of the cookie
  • value: The value of the cookie
  • domain: The domain to which the cookie is visible
  • path: The path to which the cookie is visible
  • expiry: The expiration date of the cookie (or a missing cell, if there’s no expiration)
  • session: (CDT only) “true” if the cookie is a session (aka. transient, temporary, or non-persistent) cookie
  • size: (CDT only) Size of the cookie in bytes
  • httpOnly: (CDT only) “true” if the cookie is marked as HttpOnly – this means that it cannot be accessed by client-side JavaScript code, but is still sent to the server.
  • secure: (CDT only) “true” if the cookie is marked as Secure – this means that it is only ever sent through encrypted (i.e. HTTPS) requests.
  • sameSite: (CDT only) The SameSite attribute which can be “Strict”, “Lax”, or “None” (or a missing cell, if it’s not given).
  • priority: (CDT only) The Priority of the coookiie which can be “Low”, “Medium”, or “High” (this is a Chrome-specific feature to prioritize which cookies get deleted first, if needed)

Icon for node 'Create PDF'Create PDF#

“Prints” the current page content to a PDF. Works with Chromium-based browsers running in headless mode. The PDF file is appended as a “binary object” column. To write it to a file, you can e.g. use the “Binary Objects to Files” node.

OptionDescription
InputInput column which provides the WebDriver(s)
UnitSelect the unit for the lengths (millimeters or inches)
SizeWidth and height of the PDF page
MarginMargins around the PDF page (enable the “=” button to have equal margins all around the page)
ScaleScaling factor in percent
Include backgroundWhether to include background graphics
PortsDescription
▸ 0Table with a column providing a WebDriver
0 ▸Table with an appended binary column which contains the PDF data

Icon for node 'Current URL'Current URL#

Appends a new string column to the input table which contains the URL currently shown in the selected WebDriver.

OptionDescription
InputInput column with the WebDriver(s)
PortsDescription
▸ 0Table with a column providing WebDrivers.
0 ▸Input table with additional string column which contains the URLs.

Icon for node 'Drag and Drop'Drag and Drop#

Simulates drag and drop of a WebElement by a specified distance.

OptionDescription
X OffsetThe horizontal offset by which to drag the element.
Y OffsetThe vertical offset by which to drag the element.
PortsDescription
▸ 0Table with a column providing WebElements to drag and drop
0 ▸Same as input table

Icon for node 'Execute JavaScript'Execute JavaScript#

Executes JavaScript code in the current frame or window of the selected WebDriver. Data can be transferred between KNIME and the JavaScript code, by specifying a return type for the executed code and/or selecting input columns which provide argument values for the executed code.

Arguments can be accessed within JavaScript code through the arguments array. The following argument and return data types are supported:

JavaScript KNIME Cell KNIME Flow Variable
HTML Element WebElement
Decimal Number Double Double
Non-decimal Number Long Long, Int
Boolean Boolean Boolean
String String String
Array List, JSON Double, Long, Int, Boolean, String Array
Object JSON

The following snippet will return a JSON object which is mapped to a JSON cell in KNIME. For this, set the “Return type” to “JSON”:

const result = { property1: 'a', property2: 2, property3: [ 'b', 'c', 'c' ] };
return result;

In case you need to execute code asynchronously, enable the [asyncCallbackMethod] argument. In this case, the last argument given to the executed code is the callback which signals that the code has finished execution. In case you need to return results from your asynchronous code, provide it as argument to the callback method. For example, the following JavaScript code causes the browser to sleep for five seconds, then the execution continues:

const callback = arguments[arguments.length - 1]; // last argument is callback
window.setTimeout(function() {
  console.log('finished');
  callback(); // invoke the callback to continue execution
}, 5000);
        

Timeouts for asynchronous execution can be configured in the Start WebDriver node in the “Timeouts” tab: Script timeout.

Tab, OptionDescription
Options
InputInput column which provides the WebDriver(s)
ArgumentsSelect columns from the input table or flow variables, which provide arguments for the executed code snippet. The selected entries are available in code in the listed order via the arguments array. Enable the last entry [asyncCallbackMethod] in case you’re running an asynchronous script to be able to signal end of execution.
Return typeThe return type of the executed JavaScript code in order to map to an appropriate KNIME type, which will be appended as additional output column. Select “None”, in case the code does not return any value.
Column nameThe name of the appended column with the result
JavaScript codeThe JavaScript code to execute
PortsDescription
▸ 0Table with a column providing a WebDriver
0 ▸Same as input table, optionally with an additional column with the return values of each JavaScript execution.

Icon for node 'Extract Attribute'Extract Attribute#

This node extracts attribute values from a WebElement. For the specified attribute name, the attribute values are appended as string column to the input table. In case, an attribute is not present, a missing value cell is appended.

OptionDescription
Search ModeSelect “Input Column” if your input table already contains the WebElement which you want to use. Otherwise select “Find Element(s)” to open a picker dialog which allows you to chose the WebElement(s). For more information about the dialog, please check the documentation of the “Find Elements” node.
Input(when mode is “Input Column”) Input column which provides the WebElement(s)
Remove input column(when mode is “Input Column”) Removes the input column from the result table
Selector(when mode is “Find Element(s)”) Click the “Edit” button to open the picker dialog.
Attribute nameThe name of the attribute
Change output column nameEnter a custom name for the appended output column, or leave this blank to auto-generate the name based on the input column name and attribute
PortsDescription
▸ 0Table with a column providing WebElements to extract
0 ▸Table with appended column holding the values of the attribute

Icon for node 'Extract CSS Property'Extract CSS Property#

This node extracts a CSS property from a WebElement. For the specified CSS property name, the property values are appended as string column to the input table. In case, a CSS property is not present, a missing value cell is appended.

Note: “Shorthand” CSS properties such as background, font, border, etc. are usually not supported, instead you must use the explicit longhand property names, such as background-color, font-size, etc.

Color values are returned as RGBA strings, e.g. for a color property green Selenium will return rgba(0, 255, 0, 1).

OptionDescription
Search ModeSelect “Input Column” if your input table already contains the WebElement which you want to use. Otherwise select “Find Element(s)” to open a picker dialog which allows you to chose the WebElement(s). For more information about the dialog, please check the documentation of the “Find Elements” node.
Input(when mode is “Input Column”) Input column which provides the WebElement(s)
Remove input column(when mode is “Input Column”) Removes the input column from the result table
Selector(when mode is “Find Element(s)”) Click the “Edit” button to open the picker dialog.
CSS value nameThe name of the CSS property to extract
Change output column nameEnter a custom name for the appended output column, or leave this blank to auto-generate the name based on the input column name and attribute
PortsDescription
▸ 0Table with a column providing WebElements to extract
0 ▸Table with appended column holding the specified property value

Icon for node 'Extract Text'Extract Text#

This node appends a WebElement’s text content by extracting the innerHTML, outerHTML, or textContent property via JavaScript.

OptionDescription
Search ModeSelect “Input Column” if your input table already contains the WebElement which you want to use. Otherwise select “Find Element(s)” to open a picker dialog which allows you to chose the WebElement(s). For more information about the dialog, please check the documentation of the “Find Elements” node.
Input(when mode is “Input Column”) Input column which provides the WebElement(s)
Remove input column(when mode is “Input Column”) Removes the input column from the result table
Selector(when mode is “Find Element(s)”) Click the “Edit” button to open the picker dialog.
PropertySelect whether to extract innerHTML, outerHTML, or textContent
Change output column nameEnter a custom name for the appended output column, or leave this blank to auto-generate the name based on the input column name and attribute
PortsDescription
▸ 0Table with a column providing WebElements to extract
0 ▸Table with appended column holding the inner/outerHTML values

Icon for node 'Find Elements'Find Elements#

Extracts WebElements based on different criteria. The input can either be a WebDriver (representing a browser’s window), or a WebElement (a subpart of the window). The following search criteria are available:

Find by Explanation
Class Name Finds elements based on their class attributes. In case an element has multiple class values assigned, matching a single value is sufficient.
CSS Selector Finds elements based on a CSS selector expression.
ID Finds an element based in its id attribute.
Link Text Finds links through an exact match of their text.
Name Finds elements based on their name attributes.
Partial Link Text Finds links by a partial match of the given text.
Tag Name Finds elements based on their tag names.
XPath Finds elements based on an XPath expression. (see e.g. here for a introduction to XPath)

You can use the “Outline” view to easily create selector queries from the current DOM tree: Find the element you want to extract and double click on the corresponding line. A matching selector expression will be automatically inserted into the “Query” field.

Alternatively, you can select elements directly in the browser (works for Chromium-based browsers Chrome, Chromium): Click the “Select” button beside the “Query” input, switch to your browser window, and select any element on the page. A selector expression will be inserted into the “Query” field.

Please note that these feature require (1) a running browser instance which must show the actual data you want to extract, (2) the “full input data” to the node to be available.

To search for a text snippet within the DOM tree, use the search bar below the source.

For each extracted WebElement a new row is added to the output table.

Note that you cannot only search within the given input, but also navigate the entire DOM tree. For example, you can use the XPath query .. to find a WebElement’s parent.

Also note that you can only find on a DOM element level here, but not text content or attributes. To extract text, use this node to select the surrounding element, and then connect an “Extract InnerHTML” node to get the text. To extract attribute values, use an “Extract Attribute” node accordingly.

OptionDescription
Find inThe input column providing the starting point where to search.
ByThe search criterion (see above).
QueryThe query (in case you allow KNIME to open the dialog with “full input data” and the Selenium browser is running, the dialog will give you a live update with the number of matches for the entered query. The query input will show suggestions based on the currently loaded page e.g. for ID, class name, tag name, and tag name. Hint: To show updates instantly, make sure to disable the “Implicit wait” in the Start WebDriver node!).
Set result column nameEnable to change the name of the appended column.
Extract first match onlyIf enabled, extract only first match per input row instead of all.
Return missing values when nothing is foundIf enabled, return a “missing value” cell in case nothing could be found, or an ignored exception was catched (see below).
Wait up to X s, poll every Y msSpecify the maximum amount of time in seconds to wait in case elements are searched and are not immediately available. Additionally, the poll interval in milliseconds can be specified. Selenium will wait at most for the given amount of time and keep checking in the given poll interval.
Ignore exceptionsDo not fail the node’s execution in case an exception is encountered (typically, in case the wait timeout was reached without finding an element). Note, that when used together with the “wait” option and multiple input rows, this will cause the node to wait for each row sequentially (i.e. a worst case of X seconds × N rows).
Append additional WebElement informationIf enabled, additional columns with the WebElement’s properties are appended (tag name, text content, selected, enabled, displayed state, position and size). This may (1) slow down extraction or (2) not be supported by specific WebDriver implementations. In latter case MissingValues will be returned.
PortsDescription
▸ 0Table with a column providing a WebDriver or WebElements in which to search
0 ▸Table with the found WebElements (and optionally additional columns with more information)

Icon for node 'Frame'Frame#

This node allows to select an HTML frame on a page. The frame can be located by different methods. After execution, the WebDriver operates within the selected frame. To go back to the parent frame afterwards, run this node with the “Back to parent frame” option.

When using “Name or ID” or “WebElement”, make sure to point directly to a <frame> or <iframe> element!

OptionDescription
WebDriver inputInput column which provides the WebDriver(s)
IndexSelect a frame by its (zero-based) index.
Name or IDSelect a frame by its name or ID.
WebElementSelect a frame using its previously located WebElement.
Back to parent frameSwitch back to the parent frame.
Default contentSwitch either to the first frame on the page, or the main document when a page contains iframes.
PortsDescription
▸ 0Table with a column providing a WebDriver in which to select a frame
0 ▸Same as input table

Icon for node 'Get Pooled WebDriver'Get Pooled WebDriver#

This node works similarly to the Start WebDriver node, except that it relies on a global pool of WebDrivers respective browsers. When the node is executed, it will try to retrieve an existing, idle WebDriver with the specified configuration from the pool, and only start a new one in case no WebDriver is available.

Instead of quitting the WebDriver (e.g. by resetting this node, or by running a Quit WebDriver node), it is handed back to the pool and can be reused later. WebDrivers managed by the pool will be quit simultaneously with KNIME.

The node performs a simple health check before handing out a pooled WebDriver. In case a WebDriver is not responding (e.g. because it has crashed, or it was killed by the user) it is eliminated from the pool.

Note, that the pooling mechanism is primarily intended for speeding up workflows which would start new browsers very frequently (e.g. in a busy loop). Pooled drivers keep their settings (cache, cookies, data, history, etc.), it is therefore not advisable to use the pooling mechanism when you require a “clean” browser, e.g. during testing.

Tab, OptionDescription
WebDriver
WebDriverThe WebDriver to use (this option is available when the input port is unconnected). Otherwise you can configure this in the corresponding “WebDriver Factory” node. Please see the “WebDriver Factory” node documentation for configuration details.
Navigation
URLThe URL to load (optional)
Timeouts
Page load timeoutThe timeout for a page load to finish in milliseconds.
Script timeoutThe timeout for asynchronous scripts in milliseconds.
Implicit waitThe amount of time to wait in case an element is searched in the DOM and it is not immediately available.
PortsDescription
▹ 0A configured factory which is used for creating the WebDrivers
0 ▸A table with one row and column providing the WebDriver

Icon for node 'Highlight'Highlight#

Highlights WebElements by creating a border around them. The color and size of the border are taken from input row’s size and color properties (as specified by the Color Manager and Size Manager nodes).

OptionDescription
InputInput column which provides the WebElement(s)
PortsDescription
▸ 0Table with a column providing WebElements to highlight
0 ▸Same as input table

Icon for node 'Logging'Logging#

Configures logging for Selenium and different drivers. This node is intended for debugging purposes, when reporting bugs, and not for productive usage.

Use the node as follows:

  1. Place the node at the beginning of the workflow (we suggest to make use of the flow variable output port and connect it to the “Start WebDriver” node to ensure executing this node before starting a Selenium workflow).
  2. Configure the logging granularity in the node configuration as desired.
  3. The node outputs temporary paths for log files which can be accessed during execution of the workflow.
  4. When saving the workflow, all logfiles will be copied into the workflow’s node internal directory.
OptionDescription
Selenium Log LevelThe logging granularity for the Selenium library.
Chrome Driver Log LevelThe logging granularity for the Chrome driver.
Edge Driver Log LevelThe logging granularity for the Edge driver.
Gecko Driver Log LevelThe logging granularity for the Gecko driver (i.e. Firefox).
IE Driver Log LevelThe logging granularity for the Internet Explorer driver.
PortsDescription
▹ 0Flow variables
0 ▸Flow variables with added file paths to the different log files.

Icon for node 'Navigate'Navigate#

Navigates the selected WebDriver. The navigation types “URL”, “Back”, “Forward”, and “Refresh” are supported.

OptionDescription
InputInput column which provides the WebDriver(s)
Navigation typeThe navigation type to perform
URLThe destination URL in case the type “URL” was selected (“knime:” URLs will be resolved to local “file:” URLs, which is useful for testing purposes). Click the “Current URL” button to use the URL which is currently shown in the browser.
PortsDescription
▸ 0Table with a column providing a WebDriver
0 ▸Same as input table

Icon for node 'Network Dump End [BETA]'Network Dump End [BETA]#

Ends dumping network requests and write the results to a table. This requires a “Network Dump Start” node to be placed upstream in the workflow.

Note that once this node has executed and written the collected data, you can not re-run it. Instead you need to re-run the workflow from the corresponding “Network Dump Start” node.

PortsDescription
▸ 0Table which contains a WebDriver.
0 ▸Same as input table with the network dumping enabled.
1 ▸All captured network requests.

Icon for node 'Network Dump Start [BETA]'Network Dump Start [BETA]#

Starts dumping network requests for the provided WebDriver – this means that all requests and responses including their headers and body will be recorded so that they can be inspected later. Use the matching “Network Dump End” node to stop the dumping and access the results. Typically you’ll want to put this node straight after the “Start WebDriver” node.

This node requires a Chrome-based browser.

PortsDescription
▸ 0Table which contains a WebDriver.
0 ▸Same as input table with network dumping enabled.

Icon for node 'Not'Not#

Inverses the given condition so that it is the logical “not”.
PortsDescription
▸ 0Condition
0 ▸Inverse Condition

Icon for node 'Number of Elements'Number of Elements#

This condition checks the number of WebElements present on the page – it can expect a specific count of elements, or more or less elements. Note that “presence” includes potentially invisible WebElements as well.
OptionDescription
ByThe search criterion (see “Find Elements” node for more details).
QueryThe query which addresses the expected elements.
ComparisonChose if exactly the given count, more, or less are expected.
CountThe expected number.
PortsDescription
0 ▸Condition

Icon for node 'Or'Or#

Provides a logical “or” condition of the provided input conditions. The resulting condition will check each input condition until at least one is fulfilled.
PortsDescription
▸ 0First condition
▸ 1Second condition
0 ▸Or-combined input conditions

Icon for node 'Page Source'Page Source#

Adds a column with the currently loaded page source (i.e. the DOM) of the selected WebDriver. In case, the page was modified by JavaScript after page load, there is no guarantee, that the returned source actually reflects the currently displayed page (this depends on the selected WebDriver, see individual WebDriver documentation for more information).

OptionDescription
InputInput column which provides the WebDriver(s)
PortsDescription
▸ 0Table with a column providing a WebDriver
0 ▸Table with an appended column containing the WebDriver’s current HTML source as string

Icon for node 'Quit WebDriver'Quit WebDriver#

This node quits a Selenium subworkflow by closing the WebDriver which was initially opened by a Start WebDriver node. This means that the browser instance opened at the beginning of the workflow is closed by this node. The node checks all rows and columns of the provided table for WebDriver cells.

PortsDescription
▸ 0A table which should contain a WebDriver (in case it contains multiple WebDrivers in different rows or columns, all of them are closed)
0 ▸Same as input table, but with all Selenium-specific columns (WebDriverCell and WebElementCell) removed.

Icon for node 'Reset on Load'Reset on Load#

This node contains no execution logic. Instead it will simply reset itself when a workflow is loaded. This can be useful when placing it before a “Start WebDriver” node to ensure that the node always gets reset when opening a workflow. (therefore connect the red “Flow Variable” output port with a “Start WebDriver” node by dragging to the node’s left upper corner)

This node can be used free of charge, even without a valid Selenium Nodes license (see here).

PortsDescription
0 ▸Variable to port to connect to the node which should be reset.

Icon for node 'Select'Select#

Allows selecting or deselecting options within a menu which is represented by select tags. Selections can be made by different criterions: By numeric zero-index (e.g. select first element in a select), by an option’s value, by an option’s text, or simply selecting all options.

Note: In case you are trying to select multiple elements and the corresponding select construct does not have a multiple attribute, an error is thrown.

OptionDescription
InputInput column which provides the select WebElement(s)
ActionThe action to take (select or deselect)
Select byThe criterion for the select or deselect
PortsDescription
▸ 0Table with a column providing WebElements to select
0 ▸Same as input table

Icon for node 'Selenium Session Info'Selenium Session Info#

Appends two new string columns to the input table which contain URL of the Selenium server and the session ID for the given WebDriver.

This allows to make use of the WebDriver’s REST API.

OptionDescription
InputInput column with the WebDriver(s)
PortsDescription
▸ 0Table with a column providing WebDrivers.
0 ▸Input table with additional string columns for the server URL and the session ID.

Icon for node 'Send File Path'Send File Path#

Enter a file path into an input of type “file”. Note that when executing this node, it will not “send” the file itself, but rather enter the path to the file, similar to the “Send Keys” node. Uploading of the file typically happens, when submitting an associated form.

OptionDescription
Search ModeSelect “Input Column” if your input table already contains the WebElement which you want to use. Otherwise select “Find Element(s)” to open a picker dialog which allows you to chose the WebElement(s). For more information about the dialog, please check the documentation of the “Find Elements” node.
Input(when mode is “Input Column”) Input column which provides the WebElement(s)
Remove input column(when mode is “Input Column”) Removes the input column from the result table
Selector(when mode is “Find Element(s)”) Click the “Edit” button to open the picker dialog.
FileSelect the file to add (“knime:” URLs will be resolved to local “file:” URLs, which is useful for testing purposes)
PortsDescription
▸ 0Table with a column providing WebElements to which to send the file
0 ▸Same as input table

Icon for node 'Send Keys'Send Keys#

Simulates typing into a WebElement which accepts text. You can send special keys using belows’s code. Just copy the “representation” into the input. The “Null” key as used as termination for sending sequences; e.g. to send Ctrl+A, enter \uE009a\uE000.

Key Representation
Null \uE000
Cancel \uE001
Help \uE002
Backspace \uE003
Tab \uE004
Clear \uE005
Return \uE006
Enter \uE007
Shift \uE008
Control \uE009
Alt \uE00A
Pause \uE00B
Escape \uE00C
Space \uE00D
Page Up \uE00E
Page Down \uE00F
End \uE010
Home \uE011
Arrow Left \uE012
Arrow Up \uE013
Arrow Right \uE014
Arrow Down \uE015
Insert \uE016
Delete \uE017
Semicolon \uE018
Equals \uE019
Numpad 0 \uE01A
Numpad 1 \uE01B
Numpad 2 \uE01C
Numpad 3 \uE01D
Numpad 4 \uE01E
Numpad 5 \uE01F
Numpad 6 \uE020
Numpad 7 \uE021
Numpad 8 \uE022
Numpad 9 \uE023
Numpad Multiply \uE024
Numpad Add \uE025
Numpad Separator \uE026
Numpad Subtract \uE027
Numpad Decimal \uE028
Numpad Divide \uE029
F1 \uE031
F2 \uE032
F3 \uE033
F4 \uE034
F5 \uE035
F6 \uE036
F7 \uE037
F8 \uE038
F9 \uE039
F10 \uE03A
F11 \uE03B
F12 \uE03C
Meta / Command \uE03D
Zenkaku / Hankaku \uE040
OptionDescription
Search ModeSelect “Input Column” if your input table already contains the WebElement which you want to use. Otherwise select “Find Element(s)” to open a picker dialog which allows you to chose the WebElement(s). For more information about the dialog, please check the documentation of the “Find Elements” node.
Input(when mode is “Input Column”) Input column which provides the WebElement(s)
Remove input column(when mode is “Input Column”) Removes the input column from the result table
Selector(when mode is “Find Element(s)”) Click the “Edit” button to open the picker dialog.
TextThe text to send
PortsDescription
▸ 0Table with a column providing WebElements to which to send keys
0 ▸Same as input table

Icon for node 'Solve Image Captcha'Solve Image Captcha#

Solves plain image Captchas (i.e. one which shows some more or less distorted, but human-readable text which is supposed to be entered by the user) using the 2Captcha Captcha solving API.

This node requires the captcha as PNG image cell – you can extract it using a combination of a “Find Elements” node (select the captcha image) and a “Take Screenshot” node to create an image cell of (only!) the captcha.

The node appends a column with the captcha solution and a flow variable imageCaptchaSolution – use this to fill out the input page on the website for the solution.

To solve reCAPTCHA and hCaptcha, have a look athe “Solve Captcha” node instead.

OptionDescription
InputInput column which provides the captcha as PNG cell
2Captcha API KeyYour API key to for the 2Captcha API
PortsDescription
▸ 0Table with a column providing a PNG cell
0 ▸Table with appended captcha solution

Icon for node 'Solve reCAPTCHA and hCaptcha [BETA]'Solve reCAPTCHA and hCaptcha [BETA]#

Solves Captchas from reCAPTCHA or hCaptcha using the 2Captcha Captcha solving API. The Captchas will be automatically detected on the page and then sent to the API for solving. Solving typically takes from a few seconds up to a minute. Once the solutions are available, they will be entered automatically into the DOM and the node finishes executing. From that point on you can consider the Captcha challenge to be sovled and continue with your usual operations.

Parts of this node is based on the excellent plugin collection puppeteer-extra by berstend̡̲̫̹̠̖͚͓̔̄̓̐̄͛̀͘.

This node only works with Chrome-based browsers.

OptionDescription
InputInput column which provides the WebDriver
2Captcha API KeyYour API key to for the 2Captcha API
PortsDescription
▸ 0Table with a column providing a WebDriver
0 ▸Same as input table.

Icon for node 'Start WebDriver'Start WebDriver#

This node starts a Selenium workflow by creating a new WebDriver. A WebDriver serves as an interface to a web browser, and allows to open web pages, control the browser, and extract data from it. The actual WebDriver to use must be configured using an upstream WebDriver Factory node.

The WebDriver is automatically closed, when this node is being reset, or the workflow or KNIME is closed. Additionally, you can explicitly close the browser with a Quit WebDriver node.

Important note: Because of the way Selenium works, KNIME workflows using the Selenium Nodes behave differently than you might be used from other nodes. As a Selenium workflow relies on a running browser instance, it is for example not possible to re-run a saved KNIME workflow from in between after it has been loaded from disk. In such cases, you need to re-run the workflow starting from the initial Start WebDriver node, as the downstream Selenium nodes require a WebDriver instance for operation.

Tab, OptionDescription
WebDriver
WebDriverThe WebDriver to use (this option is available when the input port is unconnected). Otherwise you can configure this in the corresponding “WebDriver Factory” node. Please see the “WebDriver Factory” node documentation for configuration details.
Navigation
URL(optional) The URL to load (“knime:” URLs will be resolved to local “file:” URLs, which is useful for testing purposes). Hint: It’s recommended to use the “Navigate” node instead to configure the initial URL -- this allows you re-run a workflow starting at the “Navigate” node without having to re-start the browser.
Timeouts
Page load timeoutThe timeout for a page load to finish in milliseconds.
Script timeoutThe timeout for asynchronous scripts in milliseconds.
Implicit waitThe amount of time to wait in case an element is searched in the DOM and it is not immediately available. Note: We recommend against using this configuration - instead use the “explicit” waits which you can configure in the “Find Elements” options.
PortsDescription
▹ 0A configured factory which is used for creating the WebDrivers
0 ▸A table with one row and column providing the WebDriver

Icon for node 'Submit'Submit#

Causes a form submit, in case the WebElement is either of type form, or it is contained within a form. If the submission causes a new page to load, the action will block until the page has loaded. In case the element the element is neither a form, nor contained in such, running this node will cause an error.

OptionDescription
Search ModeSelect “Input Column” if your input table already contains the WebElement which you want to use. Otherwise select “Find Element(s)” to open a picker dialog which allows you to chose the WebElement(s). For more information about the dialog, please check the documentation of the “Find Elements” node.
Input(when mode is “Input Column”) Input column which provides the WebElement(s)
Remove input column(when mode is “Input Column”) Removes the input column from the result table
Selector(when mode is “Find Element(s)”) Click the “Edit” button to open the picker dialog.
PortsDescription
▸ 0Table with a column providing WebElements to submit
0 ▸Same as input table

Icon for node 'Synchronize'Synchronize#

This node serves as a helper to synchronize a branched Selenium workflow. In case a Selenium workflow consists of parallel branches, and one wants to wait at a certain point until all branches have finished, all the branches can be connected to input ports of this node. Further execution blocks until all branches are available. The output port of this node provides the (unmodified) input of the first input port.

Note: There’s an improved successor of this node available as part of the free NodePit Power Nodes. Have a look at NoOp (Configurable).

PortsDescription
▸ 0The first input table
▹ 1The second input table
▹ 2The third input table
0 ▸The unmodified table of the first input port

Icon for node 'Table Extractor'Table Extractor#

This node conveniently converts HTML tables into KNIME tables. It uses some simple heuristics to determine the column names. The result are three KNIME tables. The first KNIME table contains the HTML table’s content, the second and third KNIME tables contain the HTML table’s header and footer.

As KNIME supports no spanning rows or columns, rowspan and colspan attributes in the HTML table are mapped by simply copying the original cell’s content to the spanning cells.

The HTML table’s header is detected by checking, whether (1) all cells are of type th, or (2) the cells are contained within a thead element. The HTML table’s footer is detected through the tfoot element.

The KNIME table’s column names are generated from HTML table’s header. In case the header is a single row, the column names equal the HTML table’s header names. In case there is more than one row in the HTML table’s header, the rows are concatenated with “ > ”. In case the HTML table contains no header, the column names are synthetically generated (“column0”, “column1”, …)

Here’s an example HTML table:

Header A
Header B Header C Header D
Cell 1 Cell 2 Cell 3
Cell 4 Cell 5
Cell 6 Cell 7

This will result in the following KNIME content table:

Header A > Header B Header A > Header C Header A > Header D
Cell 1 Cell 2 Cell 3
Cell 4 Cell 5 Cell 5
Cell 4 Cell 6 Cell 7

And the KNIME header table:

Header A > Header B Header A > Header C Header A > Header D
Header A Header A Header A
Header B Header C Header D

The footer table would be empty in this example, because the HTML table contains no footer.

OptionDescription
Search ModeSelect “Input Column” if your input table already contains the WebElement which you want to use. Otherwise select “Find Element(s)” to open a picker dialog which allows you to chose the WebElement(s). For more information about the dialog, please check the documentation of the “Find Elements” node.
Input(when mode is “Input Column”) Input column which provides the WebElement(s)
Remove input column(when mode is “Input Column”) Removes the input column from the result table
Selector(when mode is “Find Element(s)”) Click the “Edit” button to open the picker dialog.
PropertySelect which property to extract
  • innerHTML: The inner HTML markup of each cell
  • outerHTML: The outer HTML markup of each cell (same as innerHTML, but including the cell’s own markup as well)
  • innerText: The rendered text content of the cell (consider it as the result a user would get if they highlighted the cell with the cursor and copied the text to their clipboard)
  • textContent: The text content of the cell (in contrast to innerText) including e.g. parts which are invisible
Treat rowspan and colspan as missing cellsEnable to empty strings or missing values (depending on next settings) for rowspan or colspan cells instead of repeating the original value.
Create missing values for missing cellsIf this option is checked, missing value cells (instead of empty string cells) will be created for those cells, which are not explicitly defined within the HTML table.
Skip empty rowsEnable to skip entirely empty rows from the output tables.
PortsDescription
▸ 0Table with a column providing a WebElement which resembles the table to extract
0 ▸The table content
1 ▸The table’s header data
2 ▸The table’s footer data

Icon for node 'Take Full Page Screenshot'Take Full Page Screenshot#

Take a full page screenshot of the currently loaded page in a Chrome-based browser.

OptionDescription
InputInput column which provides the WebDriver(s)
Override screen sizeEnable to override the screen width
Screen widthThe screen width in pixels
Scale factorScaling factor (1 means 100%, smaller/larger values scale down/up; use higher values to create high-res “retina” screenshots)
PortsDescription
▸ 0Table with a column providing a WebDriver
0 ▸Table with an appended column containing the screenshot as image cell.

Icon for node 'Take Screenshot'Take Screenshot#

Take a screenshot of the currently loaded page in the selected WebDriver, or a specified WebElement. The WebDriver respective WebElement must support taking screenshots, else an error is triggered (e.g. the HtmlUnitDriver does not allow to take screenshot, as it is not running within a GUI). The extent of the resulting screenshot depends on the actual WebDriver (some WebDrivers capture the entire page, or the current window, or the visible frame, or the entire screen).

Quoting from the Selenium API documentation:

For WebDriver […], this makes a best effort depending on the browser to return the following in order of preference:

  • Entire page
  • Current window
  • Visible portion of the current frame

For WebElement […], this makes a best effort depending on the browser to return the following in order of preference:

  • The entire content of the HTML element
  • The visible portion of the HTML element
OptionDescription
InputInput column which provides the WebDriver(s)
PortsDescription
▸ 0Table with a column providing a WebDriver
0 ▸Table with an appended column containing the screenshot as image cell.

Icon for node 'Text Matches'Text Matches#

This condition checks that the text which is contained within a specific element matches a given regular expression pattern.
OptionDescription
ByThe search criterion (see “Find Elements” node for more details).
QueryThe query which addresses the expected elements.
Text PatternThe pattern to check.
PortsDescription
0 ▸Condition

Icon for node 'URL Matches'URL Matches#

This condition checks that the URL of the current page matches a given regular expression pattern. For example, to check if the current URL ends with page.html, you can use the following pattern: ^.*pagination.html$
OptionDescription
URL PatternThe pattern to check.
PortsDescription
0 ▸Condition

Icon for node 'Wait'Wait#

This node simply pauses the execution for the specified amout of time. It can be used within Selenium workflows to wait for asynchronously loaded data.

OptionDescription
TimeThe time to wait in milliseconds.
PortsDescription
▹ 0Input table
0 ▸The unmodified table of the input port

Icon for node 'Wait for Condition'Wait for Condition#

This node pauses the execution until either the given conditions apply, or until the specified timeout has elapsed. If the condition does not apply within the given timeout, the node execution will either (a) fail completely, or (b) branch into the second output port, depending on the configuration.

To perform a simple check of the conditions without any wait, set the “Wait time” to zero.

The node creates the following flow variables:

  • numMatched - the number of rows which matched the condition
  • hasMatched - boolean flag to indicate that at least one row matched the condition
  • numUnmatched - the number of rows which did not match the condition
  • hasUnmatched - boolean flag to indicate that at least one row did not match the condition

These flow variables can be useful for controlling loop behavior (e.g. if you loop a paginated list and want to stop the loop once there’s no more pages). See “Variable Condition Loop End” node.

OptionDescription
WebDriverThe WebDriver for which the conditions should be checked.
Wait timeThe time to wait in milliseconds.
Poll intervalThe polling interval for checking the condition in milliseconds.
Branch instead of failIf enabled, the node will not fail if a condition is not met within the given time; instead it will output the resulting rows to the second output port which allows to add specific logic.
PortsDescription
▸ 0The condition to check
▸ 1Input table
0 ▸Rows of the input table where the given condition matched
1 ▸Rows of the input table where the given condition did not match

Icon for node 'WebDriver Factory'WebDriver Factory#

This node is responsible for configuring a WebDriver Factory. The WebDriver Factory creates new WebDrivers which are required for example by the Start WebDriver node. The node’s configuration allows to select a concrete WebDriver implementation. The following WebDrivers are supported by default:

  • Chrome
  • Edge
  • Firefox
  • HtmlUnit(deprecated) – HtmlUnit-based headless browser – it is the fastest and and most lightweight implementation of WebDriver. Pros: It runs in pure Java and is platform-independent. Cons: While it allows to run JavaScript if enabled, it uses its own engine “Rhino” which is different from other “real” browsers.
  • Internet Explorer(not supported on this system)
  • RemoteWebDriverAllows to connect to a remote browser which is running on a server with Selenium Grid. You can also use this option to connect to third party, cloud-based Selenium services such as BrowserStack.
  • Safari(not supported on this system)

All WebDrivers except HtmlUnit and the RemoteWebDriver start an actual browser on your machine. This means, that the browser needs to be installed and accessible on your system. Usually, the browsers can be found automatically, in case they are available in the system’s path variable or they are present at system-specific standard locations. See the WebDriver-specific documentations above for more information.

Capabilities for the WebDriver can be configured using the key-value editor. This is relevant when you need a to set specific browser settings or a proxy configuration. Chrome and Firefox can be launched “headless” — use the “Headless” capability snippets to enable.

OptionDescription
WebDriverThe WebDriver to use
Remote URLThe URL in case a remote WebDriver is selected
SnippetsSnippets with predefined configurations for the currently selected WebDriver; choose a snippet in the menu and click “Merge” to add it to the capabilities list, or “Replace” to clear the current capabilities before adding it. Note, that snippets are not available for all WebDrivers.
CapabilitiesTree with key-value pairs with capabilities
Test WebDriverPerform a test run with the current configuration; a new WebDriver is opened and a test page is loaded, and the WebDriver is closed again in order to check whether the configuration is correct.
PortsDescription
0 ▸A configured WebDriver factory.

Icon for node 'Window'Window#

This node allows to resize, maximize and position the WebDriver’s window. Beside that, the current dimensions can be retrieved.

OptionDescription
InputInput column which provides the WebDriver(s)
Set sizeActivate to set a size for the window
Set positionActivate to set a position for the window
MaximizeActivate to maximize window
Get dimensionsActivate to append columns with the size and position of the window
PortsDescription
▸ 0Table with a column providing a WebDriver
0 ▸Same as input table, optionally with four additional columns for position and size of the WebDriver’s window