Can the Selenium Nodes deal with PKI sign in?

Hi there,

more and more things are web based and hence a prime candidate to be processed with the SE Nodes (at least how I see it) - from reports, data lakes to ERP systems like SAP.

My company uses a PKI (Public Key Infrastructure) security concept to secure a few of these web based services and I wonder if the SE Nodes are able to process these. Our certificates, which are required to log in to certain services are stored on a physical key card that is read through a card reader connected to the computer.

Here’s my question: Assuming that the correct rights are given and the card is active and recognized, can the SE Nodes deal with these “popups” and send a key?

image

Disclaimer: I understand that this would pose a severe security risk according to a companies policy and these workflows incl. keys should not be shared.

I just wonder if it is possible. THANKS!

Hey Phil,

these dialogs are actually system dialogs, which fall outside the control of the Selenium capabilities – so with the current state of affairs, this would be a “Nope”.

I have some ideas/drafts in the drawer on how to add companion functionalities to the Selenium Nodes which would also allow to script these, as it is a request which is popping of every now and then. Let me see if I can come up with a proof of concept during the next days and get back here. (and/or via email :slight_smile: )

giphy

I agree. DO NOT DO THIS!!!

–Philipp

1 Like

Thank you @qqilihq - understood.

I mean, it’s only a minor annoyance from the user’s perspective and of course can possibly not be included in the SE Nodes.

I guess, if all of the (sometimes many) other tasks are still automated, I think that already is an improvement.

Fun fact: I remember something similar to the Meme you shared, a software called express click yes, that basically did exactly that. Probably not the best idea :slight_smile:

So, it’s Friday, and after my Friday :beer: I usually don’t feel like working, so I played with this idea.

Below you’ll find an example workflow which starts a Selenium workflow using Start WebDriver and Navigate, and then interacts with a dialog (here the “Create Bookmark” dialog) which cannot be controlled via Selenium. Instead it uses a Java Snippet script which relies on the Robot class, a very basic and crude way control user interactions:

Robot rob = new Robot();

// (1) press cmd+d (for creating a bookmark)
rob.keyPress(KeyEvent.VK_META);
rob.keyPress(KeyEvent.VK_D);
rob.keyRelease(KeyEvent.VK_D);
rob.keyRelease(KeyEvent.VK_META);

// (2) to “write” longer texts, you can use this snippet
// TODO currently only works with lower case and normal
// characters, for everything else you'd need to
// trigger the appropriate modified keys
String textToType = "this is just an example";
for (char c : textToType.toCharArray()) {
    int keyCode = KeyEvent.getExtendedKeyCodeForChar(c);
    rob.keyPress(keyCode);
    rob.keyRelease(keyCode);
}

// (3) hit return to close the dialog
rob.keyPress(KeyEvent.VK_ENTER);

The robot actually behaves quite similar to Homer’s bird, but provides some more versatility. You can push and release specific keys in sequence (there’s actually also the possibility to “script” mouse interaction, but I’d avoid this whenever possible, as you can usually not rely on dialogs re opening at exactly the same position).

The example workflow works fine on a Mac with Chrome (after allowing UI scripting access for the KNIME application). I didn’t have the opportunity to try it with different OSes or browsers yet:

robot.mov

I’ll see if we can integrate this in a nice manner in the Selenium Nodes without having to write code.

Here’s the workflow:

Have a good weekend!
Philipp

3 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.