Thanks for your reply. The example I provided was just a sample of the response. There are other steps involved which are provided in the below snippet. So are you suggesting to hard code these steps on the client side and replacing the dynamic values such as username, password. and subdomain which is required in step 5?
Thanks
```
"steps": [
{
"name": "Set report level",
"context": "Background",
"code": "function(api) {\n var userContext = api.getUserContext();\n userContext.reportLevel = \"normal\";\n }"
},
{
"name": "Cloak",
"context": "Content",
"code": "function(api) {\n if (api.cloak) {\n // api.cloak();\n } else {\n api.log(\"cloak not supported\");\n }\n return api.NEXT;\n }"
},
{
"name": "Go to login URL",
"context": "Content",
"code": "function(api) {\n var loginUrl = api.getLoginUrl();\n // var match = /https?:\\/\\/([^\\/]+)/.exec(loginUrl);\n // if (!!match && match[1]) {\n // \tapi.clearCookie(match[1], /.*/);\n // }\n api.setLocation(loginUrl);\n return api.NEXT;\n }"
},
{
"name": "Wait to stabilize page",
"context": "Content",
"code": "function(api) {\n if (!document.body) {\n api.log(\n \"preMadeSteps.readyState document.body is not defined -> api.WAIT\"\n );\n return api.WAIT;\n }\n if (api.waitForReady) {\n api.waitForReady();\n } else {\n api.log(\"wait for ready not supported\");\n }\n api.log(\"wait for ready finished\");\n return api.NEXT;\n }"
},
{
"name": "Onelogin script",
"context": "Content",
"code": "function(api) {\n if (!document.body) {\n api.log(\"defaultEncaseFnString document.body is not defined -> api.WAIT\");\n return api.WAIT;\n }\n var encasedFn = function perform_login(doc) {\n\n var disable_browser_password_manager = true;\n var auto_submit = true;\n\n if (doc.getElementById('onelogin_dialog'))\n doc.getElementById('onelogin_dialog').style.visibility='hidden';\n\n var fieldlist = new Array();\n\n \n \n\n fieldlist.push(['password','wltec6UPtpj,}#'])\n \n \n\n fieldlist.push(['subdomain','onelogininc'])\n \n \n\n fieldlist.push(['name','
te...@quest.com'])\n \n\n var forms = doc.getElementsByTagName('form');\n var submit_button = null;\n\n var reg = /^post$/;\n\n for (var i=0; i<forms.length; i++) {\n var form_attr = forms[i].attributes.getNamedItem('method');\n if (form_attr && reg.test(form_attr.value)) {\n var form = forms[i];\n break;\n }\n }\n\n //Did not find a form in the document\n if (i==forms.length) {\n\n var getLocalIframes = function(doc) {\n\n var orig_iframes = doc.getElementsByTagName('iframe');\n\n\n\t\t var ret_iframes = [];\n\t\t for (var i=0;i<orig_iframes.length;i++) {\n\t\t\t try {\n\t\t\t\t if (orig_iframes[i].contentDocument) {\n\t\t\t\t\t ret_iframes.push(orig_iframes[i]);\n \t\t }\n\t\t\t } catch(e) {\n\t\t\t\t continue;\n\t\t\t }\n\t\t }\n\t\t return ret_iframes;\n\t }\n\n var iframes = getLocalIframes(document);\n\n if (iframes.length > 0) {\n for (var k=0;k<iframes.length;k++) {\n var iframe = iframes[k];\n var doc = iframe.contentDocument;\n var forms = doc.forms;\n for (var l=0;l<forms.length;l++) {\n var form = forms[l];\n var form_attr = form.attributes.getNamedItem('method');\n if (form_attr && reg.test(form_attr.value)) break;\n }\n }\n }\n }\n\n //we did not find any forms, nor on the main document, nor on local iframes.\n if (!form) return;\n\n var fields = form.getElementsByTagName('input');\n\n if (fields.length == 0)\n fields = form.elements;\n\n for (var j=0; j<fields.length; j++) {\n\n \n if (f = fields[j].attributes.getNamedItem('id')) {\n if (f.value == 'submit' ) {\n submit_button = fields[j];\n }\n }\n \n\n for (var n=0; n<fieldlist.length; n++) {\n if (f = fields[j].attributes.getNamedItem('name')) {\n if (f.value == fieldlist[n][0])\n fields[j].value = fieldlist[n][1];\n try {\n if (fields[j].type == 'password' && disable_browser_password_manager) {\n var passField = fields[j];\n if (passField.getAttribute && passField.setAttribute)\n passField.setAttribute(\"type\", \"hidden\");\n }\n } catch(err) {};\n }\n }\n }\n\n \n var buttons = form.getElementsByTagName('button');\n for (var j=0; j<buttons.length; j++) {\n if (f = buttons[j].attributes.getNamedItem('id')) {\n if (f.value == 'submit' ) {\n submit_button = buttons[j];\n }\n }\n }\n\n if (auto_submit) {\n if (submit_button != null) {\n submit_button.click();\n } else {\n form.submit();\n }\n }\n\n \n\n }\n;\n return encasedFn(document) || api.NEXT;\n}"
},
{
"name": "Uncloak",
"context": "Background",
"code": "function(api) {\n api.uncloak();\n }"
}
],
```