执行javascript,就像它是逐行粘贴一样

时间:2016-03-13 11:24:29

标签: javascript web browser

我想在网站上执行一系列javascript代码,这些代码涉及大量新页面的加载,仍然会在每个新加载的页面上继续执行。这是一段摘录:

document.location.href = "https://www.somehost.com"
document.getElementById("userfield").value = "<username>"
document.getElementById("passfield").value = "<password>"
document.getElementById("loginbtn").click();
document.evaluate(".//a[.='Messages']",document,null,XPathResult.ANY_UNORDERED_NODE_TYPE,null).singleNodeValue.click();
document.evaluate(".//a[.='Inbox']",document,null,XPathResult.ANY_UNORDERED_NODE_TYPE,null).singleNodeValue.click();

如果我将这行逐行粘贴到Firefox&#39;控制台(从大约:空白开始),一切正常,我到达我的收件箱。但是,如果我粘贴整个序列,或将其封装到一个函数中,我只会超过加载页面的第一步,它会告诉我getElementByID返回null。我也尝试用新窗口做同样的事情:

var new_window = window.open("https://www.somehost.com","_blank");
new_window.document.getElementById("userfield").value = "<username>"
new_window.document.getElementById("passfield").value = "<password>"
new_window.document.getElementById("loginbtn").click();
new_window.document.evaluate(".//a[.='Messages']",new_window.document,null,XPathResult.ANY_UNORDERED_NODE_TYPE,null).singleNodeValue.click();
new_window.document.evaluate(".//a[.='Inbox']",new_window.document,null,XPathResult.ANY_UNORDERED_NODE_TYPE,null).singleNodeValue.click();

仍然没有运气。

如何执行此序列,就像我只是逐个粘贴每一行一样?

是否必须执行javascript执行的速度比网站的加载过程快?

0 个答案:

没有答案