login to website in script
Posted: 13 Jan 2021 07:52
Since search is broken, I wonder if anyone can help me with this. I have an internal website on my corporate network that I want to automate logging into and searching a specific field, extracting something from it and writing to an excel spreadsheet. It has to be in IE11. The site has a lot of Javascript behind it and I can run the debugger in it and see the code but I can't figure out the form name. I've tried it in excel VBA and powershell so far with no luck because they both need the form name to be able to post. Here is the code from the website.
Code: Select all
!--Login.XSL begin--><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Support Center</title>
<link rel="stylesheet" href="Views\Default\Brand.css" type="text/css"><!--FormEncode.xsl begin--><script type="text/javascript">
function Encode(Form)
{
i=0;
j=0;
urlstr="";
Form.EncodedUrl.value="";
Time = new Date();
if (Form.eventtime)
{
Form.eventtime.value = Time.getTime();
}
else
{
TimeStamp = document.createElement("input");
with(TimeStamp){
name = "eventtime";
id = "eventtime";
type = "hidden";
value = Time.getTime();
}
Form.appendChild(TimeStamp);
}
nSubmitButtonCount = 0;
strSubmitButtonName = "";
nSubmitButtonValue = 0;
for(i=0; i < Form.length; i++)
{
str="";
if(Form.elements[i].type=="text" ||
Form.elements[i].type=="textarea" ||
Form.elements[i].type=="password" ||
Form.elements[i].type=="hidden")
{
urlstr = urlstr + Form.elements[i].name + "=";
str = EncodeString(Form.elements[i].value);
urlstr = urlstr + str + "&";
if (IsBlankable(Form.elements[i].name))
{
Form.elements[i].value = "";
}
}
else if (Form.elements[i].type=="submit") {
nSubmitButtonCount = nSubmitButtonCount + 1;
nSubmitButtonValue = Form.elements[i].value;
strSubmitButtonName = Form.elements[i].name;
}
}
if (nSubmitButtonCount == 1){
urlstr = urlstr + strSubmitButtonName + "=" + nSubmitButtonValue + "&";
}
Form.EncodedUrl.value = urlstr;
return true;
}
function EncodeString(Value)
{
str = "";
var i = 0;
var j = 0;
for(j=0; j <Value.length; j++)
{
code = Value.charCodeAt(j);
if (code > 128)
{
val = code.toString(16);
for (i=4-val.length; i > 0; i--)
{
val = "0" + val;
}
str = str + "%u" + val;
}
else {
val = Value.charAt(j);
str = str + escape(val);
}
}
return str;
}
function IsBlankable(name)
{
if ((name == "type") || (name == "menuchoice") || (name == "community"))
{
return false;
}
return true;
}
function PostEncode(Form)
{
if (Encode(Form))
{
var strEncodedUrl = escape(Form.EncodedUrl.value);
Form.EncodedUrl.value = strEncodedUrl;
//Set the limit for field size.
var FormFieldLimit = 102399;
//If the length of the object is greater than the limit, break it
//into multiple objects.
if (strEncodedUrl.length > FormFieldLimit)
{
Form.EncodedUrl.value = strEncodedUrl.substr(0, FormFieldLimit)
strEncodedUrl = strEncodedUrl.substr(FormFieldLimit );
var nIndex = 1;
while (strEncodedUrl.length > 0)
{
var objTEXTAREA = document.createElement("TEXTAREA");
var objEncodedUrl = document.createElement("input");
with(objEncodedUrl ){
name = "EncodedUrl" + nIndex;
id = "EncodedUrl" + nIndex;
type = "hidden";
value = strEncodedUrl.substr(0, FormFieldLimit);
}
Form.appendChild(objEncodedUrl);
strEncodedUrl = strEncodedUrl.substr(FormFieldLimit);
nIndex = nIndex + 1;
}
}
}
return true;
}
</script><!--FormEncode.xsl end--><script type="text/javascript">//Global variable with id of Technician form field.
var g_Technician = 'technician';
function SetCookie(Name, Value)
{
var cookieString = Name + "=" + escape(Value) + ";";
if (document.location.protocol == "https:") {
cookieString += "secure;";
}
document.cookie = cookieString;
}
function GetCookieByName(Name)
{
var Name = Name + "=";
var nIndex = document.cookie.indexOf(Name);
if (nIndex != -1) {
nIndex += Name.length;
end = document.cookie.indexOf(";", nIndex);
if (end == -1) {
end = document.cookie.length;
}
return unescape(document.cookie.substring(nIndex, end)) ;
}
return "";
}
function EncodeAndSetCookie(Form)
{
var Today = new Date();
SetCookie(g_Technician, Form.technician.value);
return PostEncode(Form);
}
function SetFocusOnForm()
{
var TechnicianCookie = GetCookieByName(g_Technician);
var TechId = document.getElementById(g_Technician);
if (TechnicianCookie && TechnicianCookie != "") {
TechId.value = TechnicianCookie;
document.getElementById('password').focus();
return;
}
TechId.focus();
}
function GetPartnerId()
{
var name = prompt("To sign in with an SSO root-level technician, leave blank. \n Otherwise enter your Technician SSO Provider ID.","");
if (name!=null && name!="") {
document.getElementById('fedLoginLink').href += "&partnerId=" + name;
return true;
} else {
var linkValue = document.getElementById('fedLoginLink').href;
document.getElementById('fedLoginLink').href = linkValue.replace('community=&','community=-1&');
return true;
}
return false;
}
</script></head>
<body class="WebText" onload="SetFocusOnForm();">
<form method="post" autocomplete="off" action="login.aspx" onsubmit="return EncodeAndSetCookie(this);" target="_self"><input type="hidden" name="EncodedUrl"><input type="hidden" name="type" value="12"><input type="hidden" id="community" name=""><input type="hidden" name="value" value=""><input type="hidden" name="menuchoice" value=""><center>