Skip to content

Instantly share code, notes, and snippets.

@gordinmitya
Last active April 9, 2020 11:16
Show Gist options
  • Save gordinmitya/29f7b330f91cb59505a61b3fab55a74c to your computer and use it in GitHub Desktop.
Save gordinmitya/29f7b330f91cb59505a61b3fab55a74c to your computer and use it in GitHub Desktop.
Повторитель тестов на Moodle

Работает для тестов, где нужно выбрать один вариант ответа из 4 предложенных

Как открыть консоль разработчика – https://learn.javascript.ru/devtools

/*
Открыть страницу с решенным тестом, важно чтобы на странице были все вопросы одним списком
Открыть консоль разработчика
Вставить код, нажать Enter
Ответы на вопросы скопированны в буфер обмена
*/
(()=> {
answers = JSON.stringify(Array.from(document.querySelectorAll(".que")).map((q) => {
return [q.id, q.querySelector("input:checked").parentElement.lastElementChild.innerText.slice(3)]
}))
console.log(answers)
copy(answers)
})()
/*
Открыть страницу теста, уже прям с вопросиками
Открыть консоль разработчика
В консоль вставить вот этот код, подставив нужные ответы
Нажать Enter
Ответы на текущие три вопроса подставяться и откроется следующая страница
В консоле нажать клавишу вверх (появиться код который вы вставляли), опять нажать Enter
*/
(() => {
/*
на следующей строчке ВМЕСТО [], нужно вставить ответы из предыдущего шага
получиться что-то вроде
answers = [[["q22","легочной артерией"],["q35","томография"],...]
*/
answers = []
answers.forEach((a) => {
q = document.getElementById(a[0])
if (q === null) return
l = Array.from(q.querySelectorAll("label")).find((l) => l.innerText.slice(3) == a[1])
l.parentElement.firstElementChild.checked = true
})
document.querySelector("input[name=next]").click()
})()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment