我知道已经有一些关于访问另一个元素中的元素的线程......我尝试了很多东西,但我无法让它工作......
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");
答案 0 :(得分:0)
element.getElementsByName(&#34; login&#34;)返回元素列表。如果你确定它会返回1个元素,你可能想写这个:
var doc = nessus.document.getElementsByName("login")[0];
编辑:此外,getElementsByName是Document Interface的方法。您无法在节点元素上使用它。
您最好为您的用户名输入字段指定一个ID,然后通过
直接访问它var doc = document.getElementById("usernameInput");
doc.value = "USERNAME";
JSFiddle:http://jsfiddle.net/YcPc8/4/