powershell InternetExplorer.Application как правильно отправить форму

233
18 апреля 2018, 07:28

Добрый день! Столкнулся с задачей по автоматизации работы с браузером с помощью powershell

Есть web ресурс на котором присутствует добавление значения через функцию prompt, но с помощью powershell не получается это автоматизировать и приходится менять функцию prompt на любую другую т.к. невозможно нажать на всплывающее подтверждение при помощи скрипта.

вот собственно кусок формы с которой борюсь:

<input type="submit" name="ctl00$MainContentPlaceHolder$FormView1$TabContainer1$PropertiesTabPanel$btnAddDocIssue" value="+" onclick="return addDocIssueClick();WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$MainContentPlaceHolder$FormView1$TabContainer1$PropertiesTabPanel$btnAddDocIssue&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="ctl00_MainContentPlaceHolder_FormView1_TabContainer1_PropertiesTabPanel_btnAddDocIssue" />

При нажатие на кнопку "+" автоматически срабатывает функция addDocIssueClick()

function addDocIssueClick() {
            var newDU = prompt('Enter new value:', '<new value example>');
            if ((newDU == '') || (newDU == 'undefined') || (newDU == null)) {
                return false;
            }
            document.getElementById("ctl00_MainContentPlaceHolder_HFnewdocissue").value = newDU;
            var obj = document.getElementById("ctl00_MainContentPlaceHolder_HFnewdocissue");
            obj.value = newDU;
            return true;
        }

в которой и пытаюсь заменить prompt() чем либо другим

на данный момент пытаюсь осуществить следующим способом но к сожалению это не работает:

$ie.Document.IHTMLDocument3_getElementById("ctl00_MainContentPlaceHolder_FormView1_TabContainer1_PropertiesTabPanel_btnAddDocIssue").outerHtml = '<input type="submit" id="mysubmit2" value="Send" onclick="function my(){document.getElementById(&quot;ctl00_MainContentPlaceHolder_HFnewdocissue&quot;).value=12345;var obj=document.getElementById(&quot;ctl00_MainContentPlaceHolder_HFnewdocissue&quot;);obj.value=12345;}return my();WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$MainContentPlaceHolder$FormView1$TabContainer1$PropertiesTabPanel$btnAddDocIssue&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))">'
$ok2=$ie.Document.IHTMLDocument3_getElementById("mysubmit2");
$ok2.click();

Кнопка нажимается но не происходит нужное событие по передачи значения = 12345 последующим функциям обработки:

function WebForm_PostBackOptions(eventTarget, eventArgument, validation, validationGroup, actionUrl, trackFocus, clientSubmit) {
    this.eventTarget = eventTarget;
    this.eventArgument = eventArgument;
    this.validation = validation;
    this.validationGroup = validationGroup;
    this.actionUrl = actionUrl;
    this.trackFocus = trackFocus;
    this.clientSubmit = clientSubmit;
}
function WebForm_DoPostBackWithOptions(options) {
    var validationResult = true;
    if (options.validation) {
        if (typeof(Page_ClientValidate) == 'function') {
            validationResult = Page_ClientValidate(options.validationGroup);
        }
    }
    if (validationResult) {
        if ((typeof(options.actionUrl) != "undefined") && (options.actionUrl != null) && (options.actionUrl.length > 0)) {
            theForm.action = options.actionUrl;
        }
        if (options.trackFocus) {
            var lastFocus = theForm.elements["__LASTFOCUS"];
            if ((typeof(lastFocus) != "undefined") && (lastFocus != null)) {
                if (typeof(document.activeElement) == "undefined") {
                    lastFocus.value = options.eventTarget;
                }
                else {
                    var active = document.activeElement;
                    if ((typeof(active) != "undefined") && (active != null)) {
                        if ((typeof(active.id) != "undefined") && (active.id != null) && (active.id.length > 0)) {
                            lastFocus.value = active.id;
                        }
                        else if (typeof(active.name) != "undefined") {
                            lastFocus.value = active.name;
                        }
                    }
                }
            }
        }
    }
    if (options.clientSubmit) {
        __doPostBack(options.eventTarget, options.eventArgument);
    }
}

Помогите пожалуйста как можно подсунуть значение 12345 чтоб все заработало?

READ ALSO
Аутентификация при запросах к API wex.nz

Аутентификация при запросах к API wex.nz

Пытаюсь подключиться к API wexnz, формирую запрос

169
document.querySelectorAll() в массив

document.querySelectorAll() в массив

Здравствуйте! Я не давно в JSнаучился на события мыши эффекты накладывать

147
Как при переходе на главную страницу скроллить к секции

Как при переходе на главную страницу скроллить к секции

Есть две страницы - главная и contactsВ меню есть ещё один раздел - solutions (это секция, которая находится на главной странице)

154
Почему не работает scrollTo?

Почему не работает scrollTo?

Вроде все делаю правильноОднако не работает

146