Добрый день. Есть сайт. Нужно получать с него отчеты о прохождении тестов пользователями.
Звучит всё достаточно просто:
Открыть страницу
Поставить флаги в несколько checkbox
В паре окон выбора указать значения
и нажать кнопку
Пока у меня код следующий.
Но верно в нем отрабатывает только нажатие кнопки. Правда поскольку чекбоксом не выбран ни один тест, то выходит сообщение "выберите тесты по которым хотите увидеть оценки"
При этом "забавная ситуация": showReportBelow - это клетка "Показать отчет ниже", флаг в ней не появляется, но если после выполнения скрипта проставить все другие флаги (кроме этого), то отчет действительно выйдет ниже, так будто флаг в этой ячейке всё же стоит.
Куски кода с сайта:
тут фрагмент с чекбоксом, при нажатии на которую должны выделиться все тесты (программы обучения)
тут фрагмент с чекбоксом "Скрыть неназначенных" и "Показать отчет ниже"
Это сайт с авторизацией, поэтому войти вы туда не сможете.
Но я очень надеюсь что вы покажете примеры рабочие.
И еще. Мне в примерах попадаются функции
_IEFormElementCheckBoxSelect
Но как я понял на том сайте нет блоков "Form"
Звучит всё достаточно просто:
Открыть страницу
Поставить флаги в несколько checkbox
В паре окон выбора указать значения
и нажать кнопку
Пока у меня код следующий.
Код:
#include <IE.au3>
#include <StringConstants.au3>
#AutoIt3Wrapper_Run_Debug_Mode=Y
Local $oIE = _IECreate("https://riptib.ispringonline.ru/reports/generate/performance_summary",0,1,0,1)
While $oIE.Busy
WEnd
$doc = $oIE.document
; wait for it...
While $doc.ReadyState <> "complete"
WEnd
; выбрать все виды тестов
$oDiv1 = $doc.getElementById("itemSelectionCheckAllCheckboxContainer")
$oDiv1.checked = True
Sleep(1000)
; чекбокс "Скрыть неназначенных"
$oDiv2 = $doc.getElementById("excludeNotAssigned")
$oDiv2.checked = True
Sleep(1000)
; выводить отчет на этой странице ниже, а не на новой странице
$oDiv6 = $doc.getElementById("showReportBelow")
$oDiv6.checked = True
Sleep(1000)
Local $oButton = _IEGetObjById($oIE, "btnRunReport")
_IEAction($oButton, 'focus')
_IEAction($oButton, 'click')
_IELoadWait($oIE)
Но верно в нем отрабатывает только нажатие кнопки. Правда поскольку чекбоксом не выбран ни один тест, то выходит сообщение "выберите тесты по которым хотите увидеть оценки"
При этом "забавная ситуация": showReportBelow - это клетка "Показать отчет ниже", флаг в ней не появляется, но если после выполнения скрипта проставить все другие флаги (кроме этого), то отчет действительно выйдет ниже, так будто флаг в этой ячейке всё же стоит.
Куски кода с сайта:
тут фрагмент с чекбоксом, при нажатии на которую должны выделиться все тесты (программы обучения)
Код:
<div class="clear"></div>
</div><input type="hidden" id="showDeletedStateSaveUrl" value="/reports/show_deleted/update" /> </div>
<div class="select_all_checkbox header_item">
<div id="itemSelectionCheckAllCheckboxContainer" class="no_top_margin checkbox_field_container">
<div class="checkbox_holder">
<input
id="itemSelectionCheckAllCheckbox"
data-form-field-id="itemSelectionCheckAllCheckbox"
data-form-field-type="checkbox"
data-form-field-error-type="no_error"
data-form-field-error-container-id="itemSelectionCheckAllCheckbox"
data-form-field-initial-value=""
data-form-field-large-click-area="0"
data-element-value="0"
type="checkbox"
name=""
value="0"
class="form_field checkbox_form_field"
title=""
autocomplete="off"
/>
</div>
тут фрагмент с чекбоксом "Скрыть неназначенных" и "Показать отчет ниже"
Код:
<div class="report_step_content generate_report">
<div class="run_report_settings_container">
<span class="exclude_not_assigned">
<input type="checkbox" class="checkbox" id="excludeNotAssigned" />
<label for="excludeNotAssigned" class="active">Скрыть неназначенных</label>
</span> <div class="show_report_below_container">
<div id="showReportBelowContainer" class="with_label checkbox_field_container">
<div class="checkbox_holder">
<input
id="showReportBelow"
data-form-field-id="showReportBelow"
data-form-field-type="checkbox"
data-form-field-error-type="no_error"
data-form-field-error-container-id="showReportBelow"
data-form-field-initial-value=""
data-form-field-large-click-area="0"
data-element-value="0"
type="checkbox"
name=""
value="0"
class="form_field checkbox_form_field"
title=""
autocomplete="off"
/>
</div>
<label title="Показать отчет ниже" id="showReportBelowLabel" class="active checkbox_field_label" for="showReportBelow">Показать отчет ниже</label>
<div class="clear"></div>
</div> </div>
</div>
Это сайт с авторизацией, поэтому войти вы туда не сможете.
Но я очень надеюсь что вы покажете примеры рабочие.
И еще. Мне в примерах попадаются функции
_IEFormElementCheckBoxSelect
Но как я понял на том сайте нет блоков "Form"