getelementsbyname 不适用于 diffrnrt web

getelementsbyname not working on diffrnrt web

大家好。 我是新来的,所以如果我做错了,我深表歉意。

我正在尝试做什么......我正在尝试创建一个 Bat 文件,它会自动打开一个特定的站点并在那里输入登录名和密码,nadimal "Login"......模拟什么我今天参加了这个网站...... 过去,我做得很好...... 这是一个例子。 (登录名和密码已更改)

@set @script=0 /*
@echo off
set @script=
@cscript /nologo /e:jscript "%~dpnx0"
@exit /b
*/
 
var url,login,password;
url      = "http://elearn2.mbschool.ru/lmsonline/index.jsp";
// заменить на свои учетные данные
login    = "k";
password = "gx";
 
var IE = WScript.CreateObject("InternetExplorer.Application");
IE.visible = 1;
IE.navigate(url); 
 
while (IE.Busy) {
  WScript.Sleep(200);
}
 
IE.document.getElementsByName("user")(0).value = login;
IE.document.getElementsByName("password")(0).value = password;
button = IE.document.getElementsByName("save")(0);
button.focus();
button.click();

一段时间过去了,开发人员对网站进行了更改... 目前,由于某种原因,这样的算法不起作用

@set @script=0 /*
@echo off
set @script=
@cscript /nologo /e:jscript "%~dpnx0"
@exit /b
*/
 
var url,login,password;
url      = "http://lms.mba.ru/mira/#&step=1&s=tT79vdH8nG0XWayfK0Lq&type=login&doaction=Go";
// заменить на свои учетные данные
login    = "k;
password = "6m";
 
var IE = WScript.CreateObject("InternetExplorer.Application");
//IE.visible = 0;
IE.navigate(url); 
IE.visible = 1;
 
while (IE.Busy) {
  WScript.Sleep(4000);
}

IE.document.getElementsByName("user")(0).value= login;
IE.document.getElementsByName("password")(0).value = password;
button = IE.document.getElementsByName("doaction")(0);
button.focus();
button.click();

由于某种原因,登录名和密码没有出现在表单中,也没有按下按钮... 请帮帮我。 谢谢。

如果您查看过页面的源代码,就会发现用户和密码文本框位于 iframe 中。要在 iframe 中操作 DOM 元素,您需要先加载内容。

@set @script=0 /*
@echo off
set @script=
@cscript /nologo /e:jscript "%~dpnx0"
@exit /b
*/

var url,login,password;
url      = "http://lms.mba.ru/mira/#&step=1&s=tT79vdH8nG0XWayfK0Lq&type=login&doaction=Go";

login    = "k";
password = "6m";

var IE = WScript.CreateObject("InternetExplorer.Application");
//IE.visible = 0;
IE.visible = 1;
IE.navigate(url); 

while (IE.Busy) {
  WScript.Sleep(4000);
}

IE.document.getElementsByClassName("mira-frame-content")[0].contentDocument.getElementsByName('user')[0].value= login;
IE.document.getElementsByClassName("mira-frame-content")[0].contentDocument.getElementsByName('password')[0].value = password;
button = IE.document.getElementsByClassName("mira-frame-content")[0].contentDocument.getElementsByTagName("button")[1];
button.focus();
button.click();