0

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

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

1 回答 1

0

element.getElementsByName("login") 返回一个元素列表。如果您确定它会返回 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/

于 2014-07-22T12:39:31.327 回答