【发布时间】:2013-09-11 17:14:03
【问题描述】:
我最近开始学习 javascript,目前正在尝试制作一个小脚本,通过填写用户名/密码字段,然后单击“提交”按钮来自动化登录过程。
我的代码如下:
window.open("");
document.getElementById('ctl00_Username').value = "XXXX";
document.getElementById('ctl00_Password').value="XXXX";
document.getElementById('ctl00_ButtonLogin').click();
如果我运行一次,网站会打开,但没有填写任何文本字段。
如果我运行代码两次(当网站已经打开时)登录成功。
我尝试将“console.log”放在“window.open”之后,但由于某种原因似乎永远不会被调用。
我可能做错了什么?
编辑:删除了不必要的代码。我也不再确定文档对象实际上指向新打开的窗口。对“console.log”和“alert”的调用似乎也没有任何作用。
是否可以从窗口中获取正确的文档对象? 甚至可以使用“window.open”然后访问新的文档对象吗? 非常感谢提供帮助!
【问题讨论】:
-
你不能。您应该将
'filling code'放入新文件(elogin/default.aspx) -
所以window.open-call和'填充代码'不能同时运行?因为就像我在问题中写的那样;如果我运行脚本两次,一切正常。
-
您的代码甚至应该做什么? window.open 打开一个新窗口,因此
document = window.document(这甚至没有意义,document 已经等于 window.document)将获得当前窗口的document属性,而不是您刚刚打开的那个。 -
感谢您指出这一点!我的印象是我需要从窗口中“获取”一个新的文档对象。该代码应该打开站点,更改请求的文本字段的值,然后通过调用按钮的 click() 函数登录到站点。但是,在 window.open 之后脚本似乎停止了。编辑:但是,我如何获得刚刚打开的窗口的文档属性?
-
@Cethy 据我所知,没有任何 JavaScript 可以执行此操作,除非您执行
window.open(url + "?feild1=" + myText)之类的操作,但您必须知道目标站点的工作方式。
标签: javascript