Table Reader throws error with WebDriver from Selenium Nodes

Hi,

when reading from a table which has a WebDriver Column from the Selenium Nodes the Table Reader throws the following error. Please note that I cannot copy from UI. Hence I used OCR to copy the text which could be failure prone:

class org.knime.core.data.columnar.table.ColumnarContainerTableLoader$SavedColumnarContainerTable
cannot be cast to class org.knime.core.data.container. BufferedContainerTable (org.knime.core.data. columnar.table. ColumnarContainerTableLoader$SavedColumnarContainerTable is in unnamed module of loader org.eclipse. osgi.internal. loader.EquinoxClassLoader @54610a47; org.knime.core.data.container.BufferedContainerTable is in unnamed module of loader
11~6105
org.eclipse.osgi.internal. loader. EquinoxClassLoader @1c610f)

In the Transformation Tab the column type seems correctly interpreted

Only upon switching the type to string, the table could get read.

FYI @qqilihq

PS: Even by, when reading, converting the WebDriver to Text and enforcing types the Reader fails:

ERROR Table Reader         4:848:0:1018:0:1007 Execute failed: The column 'WebDriver' can't be converted to the configured data type 'String'. Change the target type or uncheck the enforce types option to map it to a compatible type.

Best
Mike

Hi @ArjenEX,

I noticed you moved the topic to the section for Community extensions. However, isn’t the issue caused by a “core” node from knime?

Best
Mike

Admittedly I haven’t used the Reader/Writer in such a context yet :thinking:

Generally speaking, the Selenium Nodes specific cells (WebDriver and WebElement) are not really meant to be serialized - they rather represent a current “in memory” state, but they cannot be really “reconstructed” from a serialized form (similar to opening a Selenium workflow and trying to re-execute it halfway, which would give a “Selenium data not available” error).

Let me think if there’s anything we can do here - thank for the feedback @mwiegand

You are welcome @qqilihq.

Thinking about restoring the WebDriver, which isn’t the initial purpose but still is very interesting, it could be a nice addition to:

  1. failure prove a workflow by allowing to resume execution (i.e. on 429 rate limiting or 5xx errors)
  2. pass the current state i.e. to a sub-workflow
  3. Resemble another approach to retry on error which we briefly once exchanged about

Admittedly, this would be a highly specific user case.