首页 > 解决方案 > 如何使用 javascript 在表单中提交数据

问题描述

我花了几个小时寻找,但我找不到解决方案。我想用 JS 自动化一项人工工作,我在偶然的网站上运行了一些测试,它可以工作。但是在特定站点中,我在登录页面上遇到以下问题:

OBS:我在浏览器控制台中执行此操作,以进行测试。

var username = window.document.getElementById("username")
undefined
var password = window.document.getElementById("password")
undefined
var signin = window.document.querySelector(".splButton-primary.btn")
undefined
username.value = "usuariovalue"
"usuariovalue"
password.value = "passwordvalue"
"password value"
signin.click()

但是,我收到了这个消息:>common.js:27 POST https://siteexemple/en-US/account/login 401(未经授权)。如果我在站点中手动填写用户名和密码,然后单击使用 JS 的按钮,它可以工作。

我看不出区别。

按照网站的代码块:

  <form method="post" class="loginForm" action="/en-US/account/login">
        <div style="display: none" data-cid="view200" class="account-login-firsttime" data-view="views/account/login/FirstTime" data-render-time="0">
		<h2>First time signing in?</h2>
		<p>If you've forgotten your username or password, please contact your Splunk administrator.</p>
		<table>
    			<tbody><tr>
       			<td>username</td>
        		<td>admin</td>
    			</tr>
    			<tr>
 		        <td>password</td>
        		<td>changeme</td>
			</tr>
			</tbody>
		</table>
	</div>
	<fieldset>   
        	<div class="control account-login-textcontrol control-default" data-cid="view197" data-view="views/account/login/TextControl" data-name="username" data-render-time="0">
	        	<span class="uneditable-input " data-role="uneditable-input" style="display:none"></span>	        
			<input type="text" name="username" class="  " value="" autocomplete="off" id="username" placeholder="Username">	            	            	        	</div>
		<div class="control account-login-textcontrol control-default" data-cid="view199" data-view="views/account/login/TextControl" data-name="password" data-render-time="0">	        
		<span class="uneditable-input " data-role="uneditable-input" style="display:none"></span>	        
		<input type="password" name="password" class="  " value="" autocomplete="off" id="password" placeholder="Password">	            	            	        	</div><input class="splButton-primary btn" type="submit" value="Sign in">
           	<input type="hidden" name="cval" value="1900007162">
            	<input type="hidden" name="return_to" value="/en-US/">
        </fieldset>
   </form>

你能帮助我吗?我从 JS 开始。

标签: javascriptdom

解决方案


推荐阅读