2017-03-06 98 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