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.
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.
Option | Description |
---|---|
WebDriver input | Input column which provides the WebDriver(s) |
Dismiss | Close the dialog by clicking the “Cancel” button. |
Accept | Close the dialog by clicking the “OK” button. |
Append column with text | Extract the dialog’s message and append it as text column. |
Send keys | The text to send to the dialog (in case it is a “prompt” dialog). |
Ports | Description |
---|---|
▸ 0 | Table 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. |
Ports | Description |
---|---|
0 ▸ | Condition |
Ports | Description |
---|---|
▸ 0 | First condition |
▸ 1 | Second condition |
0 ▸ | And-combined input conditions |
Option | Description |
---|---|
By | The search criterion (see “Find Elements” node for more details). |
Query | The query which addresses the expected elements. |
Attribute Name | Name of the attribute or CSS property to check. |
Value Pattern | The pattern which much match to attribute or CSS value. |
Ports | Description |
---|---|
0 ▸ | Condition |
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.
Option | Description |
---|---|
Hostname | Restrict 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 Password | The username and password for the authentication. |
Credentials | Use a “Credentials” flow variable to provide the username and password. |
Ports | Description |
---|---|
▸ 0 | Table which contains a WebDriver. |
0 ▸ | Same as input table with the authentication applied. |
Creates a factory loop for RemoteWebDrivers using different configurations.
Option | Description |
---|---|
URL | The remote server URL |
Ports | Description |
---|---|
▸ 0 | Table with the configuration rows for the WebDriver. |
0 ▸ | A configured WebDriver factory. |
1 ▸ | A table with the current row of the configuration input. |
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.
Option | Description |
---|---|
Search Mode | Select “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. |
Ports | Description |
---|---|
▸ 0 | Table with a column providing WebElements to clear |
0 ▸ | Same as input table |
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.
Option | Description |
---|---|
Search Mode | Select “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 Type | The type of click to perform (left, right, or double click) |
Ports | Description |
---|---|
▸ 0 | Table with a column providing WebElements to click |
0 ▸ | Same as input table |
Option | Description |
---|---|
Input | Input column which provides the WebDriver |
Action | The action to perform: “Get” or “Delete” the cookies. |
Method | The following methods are available:
|
Ports | Description |
---|---|
▸ 0 | Table with a column providing the WebDriver |
0 ▸ | Same as input table |
1 ▸ | A table with extracted cookies information. The table
contains the following columns:
|
“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.
Option | Description |
---|---|
Input | Input column which provides the WebDriver(s) |
Unit | Select the unit for the lengths (millimeters or inches) |
Size | Width and height of the PDF page |
Margin | Margins around the PDF page (enable the “=” button to have equal margins all around the page) |
Scale | Scaling factor in percent |
Include background | Whether to include background graphics |
Ports | Description |
---|---|
▸ 0 | Table with a column providing a WebDriver |
0 ▸ | Table with an appended binary column which contains the PDF data |
Appends a new string column to the input table which contains the URL currently shown in the selected WebDriver.
Option | Description |
---|---|
Input | Input column with the WebDriver(s) |
Ports | Description |
---|---|
▸ 0 | Table with a column providing WebDrivers. |
0 ▸ | Input table with additional string column which contains the URLs. |
Simulates drag and drop of a WebElement by a specified distance.
Option | Description |
---|---|
X Offset | The horizontal offset by which to drag the element. |
Y Offset | The vertical offset by which to drag the element. |
Ports | Description |
---|---|
▸ 0 | Table with a column providing WebElements to drag and drop |
0 ▸ | Same as input table |
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, Option | Description |
---|---|
Options | |
Input | Input column which provides the WebDriver(s) |
Arguments | Select 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 type | The 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 name | The name of the appended column with the result |
JavaScript code | The JavaScript code to execute |
Ports | Description |
---|---|
▸ 0 | Table with a column providing a WebDriver |
0 ▸ | Same as input table, optionally with an additional column with the return values of each JavaScript execution. |
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.
Option | Description |
---|---|
Search Mode | Select “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 name | The name of the attribute |
Change output column name | Enter 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 |
Ports | Description |
---|---|
▸ 0 | Table with a column providing WebElements to extract |
0 ▸ | Table with appended column holding the values of the attribute |
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)
.
Option | Description |
---|---|
Search Mode | Select “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 name | The name of the CSS property to extract |
Change output column name | Enter 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 |
Ports | Description |
---|---|
▸ 0 | Table with a column providing WebElements to extract |
0 ▸ | Table with appended column holding the specified property value |
This node appends a WebElement’s text content by extracting the innerHTML
, outerHTML
, or textContent
property via JavaScript.
Option | Description |
---|---|
Search Mode | Select “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. |
Property | Select whether to extract innerHTML, outerHTML, or textContent |
Change output column name | Enter 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 |
Ports | Description |
---|---|
▸ 0 | Table with a column providing WebElements to extract |
0 ▸ | Table with appended column holding the inner/outerHTML values |
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.
Option | Description |
---|---|
Find in | The input column providing the starting point where to search. |
By | The search criterion (see above). |
Query | The 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 name | Enable to change the name of the appended column. |
Extract first match only | If enabled, extract only first match per input row instead of all. |
Return missing values when nothing is found | If 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 ms | Specify 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 exceptions | Do 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 information | If 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. |
Ports | Description |
---|---|
▸ 0 | Table 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) |
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!
Option | Description |
---|---|
WebDriver input | Input column which provides the WebDriver(s) |
Index | Select a frame by its (zero-based) index. |
Name or ID | Select a frame by its name or ID. |
WebElement | Select a frame using its previously located WebElement. |
Back to parent frame | Switch back to the parent frame. |
Default content | Switch either to the first frame on the page, or the main document when a page contains iframes. |
Ports | Description |
---|---|
▸ 0 | Table with a column providing a WebDriver in which to select a frame |
0 ▸ | Same as input table |
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, Option | Description |
---|---|
WebDriver | |
WebDriver | The 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 | The URL to load (optional) |
Timeouts | |
Page load timeout | The timeout for a page load to finish in milliseconds. |
Script timeout | The timeout for asynchronous scripts in milliseconds. |
Implicit wait | The amount of time to wait in case an element is searched in the DOM and it is not immediately available. |
Ports | Description |
---|---|
▹ 0 | A configured factory which is used for creating the WebDrivers |
0 ▸ | A table with one row and column providing the WebDriver |
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).
Option | Description |
---|---|
Input | Input column which provides the WebElement(s) |
Ports | Description |
---|---|
▸ 0 | Table with a column providing WebElements to highlight |
0 ▸ | Same as input table |
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:
internal
directory.Option | Description |
---|---|
Selenium Log Level | The logging granularity for the Selenium library. |
Chrome Driver Log Level | The logging granularity for the Chrome driver. |
Edge Driver Log Level | The logging granularity for the Edge driver. |
Gecko Driver Log Level | The logging granularity for the Gecko driver (i.e. Firefox). |
IE Driver Log Level | The logging granularity for the Internet Explorer driver. |
Ports | Description |
---|---|
▹ 0 | Flow variables |
0 ▸ | Flow variables with added file paths to the different log files. |
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.
Ports | Description |
---|---|
▸ 0 | Table which contains a WebDriver. |
0 ▸ | Same as input table with the network dumping enabled. |
1 ▸ | All captured network requests. |
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.
Ports | Description |
---|---|
▸ 0 | Table which contains a WebDriver. |
0 ▸ | Same as input table with network dumping enabled. |
Ports | Description |
---|---|
▸ 0 | Condition |
0 ▸ | Inverse Condition |
Option | Description |
---|---|
By | The search criterion (see “Find Elements” node for more details). |
Query | The query which addresses the expected elements. |
Comparison | Chose if exactly the given count, more, or less are expected. |
Count | The expected number. |
Ports | Description |
---|---|
0 ▸ | Condition |
Ports | Description |
---|---|
▸ 0 | First condition |
▸ 1 | Second condition |
0 ▸ | Or-combined input conditions |
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).
Option | Description |
---|---|
Input | Input column which provides the WebDriver(s) |
Ports | Description |
---|---|
▸ 0 | Table with a column providing a WebDriver |
0 ▸ | Table with an appended column containing the WebDriver’s current HTML source as string |
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.
Ports | Description |
---|---|
▸ 0 | A 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. |
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).
Ports | Description |
---|---|
0 ▸ | Variable to port to connect to the node which should be reset. |
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.
Option | Description |
---|---|
Input | Input column which provides the select WebElement(s) |
Action | The action to take (select or deselect) |
Select by | The criterion for the select or deselect |
Ports | Description |
---|---|
▸ 0 | Table with a column providing WebElements to select |
0 ▸ | Same as input table |
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.
Option | Description |
---|---|
Input | Input column with the WebDriver(s) |
Ports | Description |
---|---|
▸ 0 | Table with a column providing WebDrivers. |
0 ▸ | Input table with additional string columns for the server URL and the session ID. |
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.
Option | Description |
---|---|
Search Mode | Select “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. |
File | Select the file to add (“knime:” URLs will be resolved to local “file:” URLs, which is useful for testing purposes) |
Ports | Description |
---|---|
▸ 0 | Table with a column providing WebElements to which to send the file |
0 ▸ | Same as input table |
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 |
Option | Description |
---|---|
Search Mode | Select “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. |
Text | The text to send |
Ports | Description |
---|---|
▸ 0 | Table with a column providing WebElements to which to send keys |
0 ▸ | Same as input table |
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.
Option | Description |
---|---|
Input | Input column which provides the captcha as PNG cell |
2Captcha API Key | Your API key to for the 2Captcha API |
Ports | Description |
---|---|
▸ 0 | Table with a column providing a PNG cell |
0 ▸ | Table with appended captcha solution |
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.
Option | Description |
---|---|
Input | Input column which provides the WebDriver |
2Captcha API Key | Your API key to for the 2Captcha API |
Ports | Description |
---|---|
▸ 0 | Table with a column providing a WebDriver |
0 ▸ | Same as input table. |
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, Option | Description |
---|---|
WebDriver | |
WebDriver | The 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 timeout | The timeout for a page load to finish in milliseconds. |
Script timeout | The timeout for asynchronous scripts in milliseconds. |
Implicit wait | The 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. |
Ports | Description |
---|---|
▹ 0 | A configured factory which is used for creating the WebDrivers |
0 ▸ | A table with one row and column providing the WebDriver |
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.
Option | Description |
---|---|
Search Mode | Select “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. |
Ports | Description |
---|---|
▸ 0 | Table with a column providing WebElements to submit |
0 ▸ | Same as input table |
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).
Ports | Description |
---|---|
▸ 0 | The first input table |
▹ 1 | The second input table |
▹ 2 | The third input table |
0 ▸ | The unmodified table of the first input port |
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.
Option | Description |
---|---|
Search Mode | Select “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. |
Property | Select which property to extract
|
Treat rowspan and colspan as missing cells | Enable 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 cells | If 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 rows | Enable to skip entirely empty rows from the output tables. |
Ports | Description |
---|---|
▸ 0 | Table 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 |
Take a full page screenshot of the currently loaded page in a Chrome-based browser.
Option | Description |
---|---|
Input | Input column which provides the WebDriver(s) |
Override screen size | Enable to override the screen width |
Screen width | The screen width in pixels |
Scale factor | Scaling factor (1 means 100%, smaller/larger values scale down/up; use higher values to create high-res “retina” screenshots) |
Ports | Description |
---|---|
▸ 0 | Table with a column providing a WebDriver |
0 ▸ | Table with an appended column containing the screenshot as image cell. |
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:
For WebElement […], this makes a best effort depending on the browser to return the following in order of preference:
Option | Description |
---|---|
Input | Input column which provides the WebDriver(s) |
Ports | Description |
---|---|
▸ 0 | Table with a column providing a WebDriver |
0 ▸ | Table with an appended column containing the screenshot as image cell. |
Option | Description |
---|---|
By | The search criterion (see “Find Elements” node for more details). |
Query | The query which addresses the expected elements. |
Text Pattern | The pattern to check. |
Ports | Description |
---|---|
0 ▸ | Condition |
page.html
, you can use the following
pattern: ^.*pagination.html$
Option | Description |
---|---|
URL Pattern | The pattern to check. |
Ports | Description |
---|---|
0 ▸ | Condition |
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.
Option | Description |
---|---|
Time | The time to wait in milliseconds. |
Ports | Description |
---|---|
▹ 0 | Input table |
0 ▸ | The unmodified table of the input port |
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 conditionhasMatched
- boolean flag to indicate that at least one row matched the conditionnumUnmatched
- the number of rows which did not match the conditionhasUnmatched
- boolean flag to indicate that at least one row did not match the conditionThese 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.
Option | Description |
---|---|
WebDriver | The WebDriver for which the conditions should be checked. |
Wait time | The time to wait in milliseconds. |
Poll interval | The polling interval for checking the condition in milliseconds. |
Branch instead of fail | If 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. |
Ports | Description |
---|---|
▸ 0 | The condition to check |
▸ 1 | Input 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 |
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:
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.
Option | Description |
---|---|
WebDriver | The WebDriver to use |
Remote URL | The URL in case a remote WebDriver is selected |
Snippets | Snippets 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. |
Capabilities | Tree with key-value pairs with capabilities |
Test WebDriver | Perform 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. |
Ports | Description |
---|---|
0 ▸ | A configured WebDriver factory. |
This node allows to resize, maximize and position the WebDriver’s window. Beside that, the current dimensions can be retrieved.
Option | Description |
---|---|
Input | Input column which provides the WebDriver(s) |
Set size | Activate to set a size for the window |
Set position | Activate to set a position for the window |
Maximize | Activate to maximize window |
Get dimensions | Activate to append columns with the size and position of the window |
Ports | Description |
---|---|
▸ 0 | Table 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 |