I am trying to launch my application url using karate framework. Issue is, this webportal does not have any login username/password functionality. This website works with the token associated with a deviceid and browser session of a particular machine. When we test it manually we have to make sure that, we are using same url on same browser and should never clear cache or else this url token gets expired.
Now, we have to automate it and we found a script that runs using selenium webdriver and java/javascript to restore the session using device id.
However, I am now trying to get solution for karate framework.
Can someone please guide me.
Please find below the karate feature file and code.
var request = indexedDB.open("ZZ");
var db;
request.onupgradeneeded = function() {
// The database did not previously exist, so create object stores and indexes.
db = request.result;
var store = db.createObjectStore("XX");
};
request.onsuccess = function() {
db = request.result;
var tx = db.transaction("XX", "readwrite");
var store = tx.objectStore("XX");
store.put("`+deviceId+`");
};
Feature file:
Feature: to test login flow
Scenario:
Given driver 'https://www.testing.com'
And param deviceid = qqqqqq
* def precondScript = Function(){
''
var request = indexedDB.open("ZZ");
var db;
request.onupgradeneeded = function() {
// The database did not previously exist, so create object stores and indexes.
db = request.result;
var store = db.createObjectStore("XX");
};
request.onsuccess = function() {
db = request.result;
var tx = db.transaction("XX", "readwrite");
var store = tx.objectStore("XX");
store.put("`+deviceId+`");
};
''
Given driver 'https://www.testing.com'
When searchbox <element locator>
Then comparison
Now this is how we have done it in selenium and cucumber BDD code.
driver.get(https://www.testing.com);
String deviceId = qqqqqq
jsHelper.executeScript("var request = indexedDB.open("ZZ");\n" +
"var db;\n" +
"request.onupgradeneeded = function() {\n" +
"// The database did not previously exist, so create object stores and indexes.\n" +
"db = request.result;\n" +
"var store = db.createObjectStore(\"XX\");\n" +
"};\n" +
"\n" +
"\n" +
"\n" +
"request.onsuccess = function() {\n" +
"db = request.result;\n" +
"var tx = db.transaction(\"XX\", \"readwrite\");\n" +
"var store = tx.objectStore(\"XX\");\n" +
"store.put(\"" + deviceId + "\", \"AAA");\n" +
"};");
driver.get(https://www.testing.com);
driver.manage().window().maximize();
log.info("navigating to homepage");