我试图简单地(在HTML脚本标签中管理的JavaScript环境中)加载网页并按下该页面上的按钮。我还希望能够从网页上读取数据,但是一旦我按下按钮工作,这应该是不言自明的。我一直在四处寻找解决方案,但似乎都没有。
为了控制环境,我有2个简单的网站。在第一个有一个调用JavaScript函数的按钮,我尝试加载网站2并按下另一个按钮。在网站2上,只有一个按钮,当按下该按钮时,会调用JavaScript函数并生成一个对话框。
我可以使用window.open()加载第2页,我相信它有一个返回类型,它是网站的句柄,我保存。我已尝试使用该句柄调用网页2中的javascript函数。我已尝试通过ID获取元素并使用click()/ submit()。这是当前尝试的代码:
网站1:
<html>
<body>
<script language = "javaScript">
function print() {
//alert('Hello World');
var win = window.open("file:///Users/Jacob/Documents/2ndWebTest.html");
win.document.form[0].submit();
}
</script>
<p><button onclick = "print()">test</button></p>
</body>
</html>
网站2:
<html>
<body>
<script language = "javaScript">
function testFunc() {
alert('Hello World');
}
</script>
<p><button onclick = "testFunc() id = "buttonTest"">test</button></p>
</body>
</html>
我尝试浏览网站层次结构并从中提取数据。我认为这至少应该在理论上有效,但我无法访问网站2上的任何功能或元素。我做错了什么?
答案 0 :(得分:1)
在上面的示例中,除非您授予对目标文件所在文件夹的访问权限,否则Web服务器将抛出拒绝访问错误。
在我的本地计算机上,通过设置名为TestSite的虚拟目录并将两个文件放入其中,我能够让您的示例正常工作。我用这个命令访问另一个:
var win = window.open("localhost/TestSite/2ndWebTest.html");
我还修复了文件2ndWebTest.html中第8行的双引号,如下所示:
<p><button onclick = "testFunc()" id = "buttonTest">test</button></p>