Userscript,vk bot ввод значений в chat input

введите сюда описание изображенияПишу vk бота,нужно вписать в chat input число '5000'.

var sr = document.getElementById('im_editable2000000017');
    sr.setAttribute="5000"

Выдавало ошибку

Cannot set property 'setAttribute' of null

Не сколько раз обновлял страницу и заметил что id textboxa меняется. Пробовал

var sr = document.getElementById('im_editable2000000017',im_editable0);
        sr.setAttribute="5000"  

Больше ошибок нету но значение так и не устанавливается в textbox. Возможно ли вообще такое решение?Если да то в чем ошибка? Только учу js.Заранее спасибо. Мой код полностью:

// ==UserScript==
// @name         script
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://vk.com/im?sel=c17
// @grant        none
// ==/UserScript==

(function() {
    function inp() {
        var sr = document.getElementById('im_editable2000000017');
        sr.value = "5000"; // Записываем значение в input
    }
    inp();

})();

<div class="im_editable im-chat-input--text _im_text" tabindex="0" contenteditable="true" id="im_editable200000001754" role="textbox" aria-multiline="true"></div>
<div class="composer_wdd clear_fix wdd_toup" id="im_editable200000001790" style="">
  <div class="wdd_lwrap" style="display: none; width: auto;">
    <div class="wdd_list"></div>
  </div><input type="hidden" id="'im_editable2000000017'" value="false">
  <input type="hidden" id="im_editable200000001712" value="false">
</div>
<script language="JavaScript">
  var sr = document.getElementById('im_editable200000001712');
  sr.value = "5000"; // Записываем значение в input
</script>


Ответы (2 шт):

Автор решения: Denis640Kb

Если Вы хотите задать именно атрибут, то надо сначала задать ему имя:

    var sr = document.getElementById('im_editable2000000017');
    sr.setAttribute('Blink', "5000"); // Записываем значение аттрибута.       console.log(document.getElementById('im_editable2000000017').getAttribute("Blink")); // Получаем значение аттрибута
<input id="im_editable2000000017">

Если хотите именно вписать в input значение, то надо делать по-другому.

    var sr = document.getElementById('im_editable2000000017');
    sr.value = "5000"; // Записываем значение в input
<input id="im_editable2000000017">

<script language="JavaScript">
    var sr = document.getElementById('im_editable2000000017');
    sr.value = "5000"; // Записываем значение в input
</script>

Пример с аттрибутом.

    window.onload = function () {
        var sr = document.getElementById('im_editable200000001712');
        sr.setAttribute('type', ""); // изменить аттрибут
        //sr.removeAttribute('type'); // или удалить аттрибут
        sr.value = "5000";
    };
<div class="im_editable im-chat-input--text _im_text" tabindex="0" contenteditable="true" id="im_editable200000001754" role="textbox" aria-multiline="true"></div>
<div class="composer_wdd clear_fix wdd_toup" id="im_editable200000001790" style="">
    <div class="wdd_lwrap" style="display: none; width: auto;">
        <div class="wdd_list"></div>
    </div><input type="hidden" id="'im_editable2000000017'" value="false">
    <input type="hidden" id="im_editable200000001712" value="false">
</div>

→ Ссылка
Автор решения: Viktor_pr

Я конечно не уверен, но может у вас скрипт tampermonkey отрабатывает быстрее чем загружается html? Попробуйте в верху к своим директивам добавить ещё одну: // @run-at document-end. А весь ваш код поместите сюда:

window.addEventListener('load', () => {
 // Ваш код
});

При этом убрав самовызывающуюся функцию

→ Ссылка