填写元素中的文本字段

时间:2014-07-22 12:35:24

标签: javascript element document nessus

我知道已经有一些关于访问另一个元素中的元素的线程......我尝试了很多东西,但我无法让它工作......

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");

1 个答案:

答案 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/