我知道已经有一些关于访问另一个元素中的元素的线程…我试了很多东西,但我不能让它工作…
JSFiddle -> http://jsfiddle.net/YcPc8/2/
我想在页面上做的是填写用户名和密码-然后点击登录按钮。
这是该网页的一部分html代码:
<section id="notifications"></section>
<div style="display: block;" id="login" class="">
<div id="login-content">
<form>
<h1>Nessus Vulnerability Scanner</h1>
<input name="login" tabindex="1" placeholder="Username" maxlength="128" autocomplete="off" autocapitalize="off" autocorrect="off" spellcheck="false" class="required login-username" type="text">
<i class="glyphicons username"></i>
<input name="password" tabindex="2" placeholder="Password" maxlength="128" autocomplete="off" class="required login-password" type="password">
<i class="glyphicons password"></i>
<div id="remember-me" class="floatleft">
<div class="checkbox login-remember"></div>
<span class="floatleft">Remember Me</span>
</div>
<button type="submit" id="sign-in" tabindex="3" class="button secondary login floatright">Sign In</button>
</form>
<div class="clear"></div>
</div>
</div>
<div class="clear"></div>
<h2>Tenable Network Security</h2>
<div class="clear"></div>
现在我要填写登录名和密码字段…以下是我在javascript中尝试的一些代码:
var nessus = window.open("https://localhost:8834/html5.html#/scans");
var doc = nessus.document.getElementById("login-content").getElementsByName("login");
doc.setAttribute("value","USERNAME");
element.getElementsByName("login")返回一个元素列表。如果您确定它将返回1个元素,您可能希望这样写:
var doc = nessus.document.getElementsByName("login")[0];
编辑:此外,getElementsByName是文档接口的一个方法。不能在node元素上使用
你最好给你的用户名输入字段一个ID,并通过
直接访问它var doc = document.getElementById("usernameInput");
doc.value = "USERNAME";
JSFiddle: http://jsfiddle.net/YcPc8/4/