2017-03-17 57 views
-1

所以我有這個機器人,我想創建,將模擬用戶輸入。我正在使用的網站是WattsApp網站。當我在網站上輸入消息時,它會啓用一個允許發送消息的按鈕。插入文本到webform使用javascript

當我運行我的腳本時,它發現輸入框(我會輸入手冊)。然後它將innerHTML更改爲測試字符串。然後它找到發送按鈕並點擊它。

問題是,當我更改innerHTML發送按鈕沒有啓用。我一直在尋找很長時間,看看爲什麼,我看不出在手動鍵入文本和使用腳本之間的區別。這裏是我的腳本:

document.getElementsByClassName("input")[1].innerHTML="TestString!!!"; 
var input = document.getElementsByClassName("icon btn-icon icon-send send-container"); 
input[0].click(); 

但是當我運行的第二行,因爲該類「圖標BTN-圖標圖標發送發送容器」不能,除非我手動型在文本中找到它得到一個錯誤。誰能幫忙?鏈接內部HTML和輸入文本有什麼區別嗎?

Image: shows the things that change

Image: shows the button class name

+0

,如果我還可以編輯HTML,包括測試字符串,它也不起作用 – Jhon122

+0

我懷疑它正在監聽文本框上的事件,而不是監視值 – Yoda

+0

以設置輸入值,請使用'input.value ='new value''。 innerHTML設置HTML內容,並且輸入是一個自閉合的空元素,因此它內部不能有任何HTML。 – pawel

回答

0

圖標,BTN-圖標,圖標發送,併發送容器是您選擇的元素的所有具體的類名。使用其中之一,而不是像下面。

document.getElementsByClassName("icon"); 

var input = document.getElementsByClassName("btn-icon"); 

var input = document.getElementsByClassName("icon-send"); 

繼續......根據你的需要

+0

我添加了第二個圖像,顯示類名。就我所知,這些都是它們。該圖像位於 – Jhon122

+0

這個問題的底部。規則是當名字之間有一個空格時,它將不再作爲一個名字。例如,如果你有class =「ab」,這並不意味着類名是「ab」,而是意味着與該類相關的元素可以被「a」或「b」引用,因此選擇元素可以使用document.getElementsByClassName(「a」)或document.getElementsByClassName(「b」)。因爲兩個元素可以具有相同的類名稱,所以如果你想要一個特定的類名稱,你可以在空格之後的引號中添加另一個名字,例如class =「a b c」.. –

0

烏爾類名是錯誤的使用只發送容器

0

當試圖設置in的值放,你需要設置值

考慮:<input id="myTextBox" />

的SetValue:document.getElementById('myTextBox').value = 'MyInput';

Reference

相關問題