2017-03-06 73 views
0

我需要自动添加用户名和密码,然后单击“确定”影子DOM元素:将数据添加到影子DOM元素自动

<input type="text" class="_y" aria-required="true" autocapitalize="off" autocorrect="off" maxlength="30" name="username" placeholder="username" value=""> 
#shadow-root (user-agent) 
<div id="inner-editor"></div> 
<div pseudo="-webkit-input-placeholder" id="placeholder" style="visibility: visible; text-overflow: clip;">Username</div> 
</input> 
</div> 

第二个字段是相同的。

我的代码添加:

document.querySelector('input').value = "username"; 
document.querySelectorAll('input')[1].value ="password"; 

它的作品中,我看到我的用户名和密码所需的字段。但是,当我使用一个代码点击按钮:

document.querySelector('button').click() 

我看到了过程开始,然后什么,田野变成空。

按钮代码:

<span class="_r "> 
<button class="_a">Enter</button> 
</span> 

如果我手动执行此操作,一切正常没有问题。为什么自动模式不工作?

+0

什么类型的,你在控制台越来越错误的? –

+0

@Supersharp我添加了按钮代码 – Delphian

+0

@santoshgore不正确的用户名或密码(在浏览器窗口中出现此错误),但是当我单击按钮时,字段变为空,这就是为什么我发现此错误的原因。控制台没有错误。 – Delphian

回答

0

我是因为当你点击<button>你的表格被发送。

如果您未指定发送表单的位置,则会再次请求当前页面,并重置<input>标记的内容。

应设置onsubmit属性是这样的:

<form onsubmit="return false"> 

...或调用JavaScript函数,将处理表单(并返回false如果你不想导航至某个页面)。

<form onsubmit="process()"> 

或指定的URL发送到哪里的形式在action属性:

<form action="/form"> 
+0

我想使用javascript自动登录。我无法更改页面代码。如果我无法更改页面代码,如何更改“onsubmit”? – Delphian

+0

在点击之前,我做了document.querySelector('form')。setAttribute(“onSubmit”,“false”),但结果相同,只是没有“错误的用户名或密码”错误。 – Delphian

+0

你可以尝试一下:google.com(添加查询并点击“搜索”)使用javascript,instagram.com(添加pas和name并点击“登录”),facebook等有一个类似的逻辑(影子dom),比如我上面描述的。 – Delphian