Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
anastasia_b
1 / 1 / 1
Регистрация: 28.04.2013
Сообщений: 45
#1

Измерение времени загрузки страницы после авторизации - JavaScript

01.07.2015, 11:22. Просмотров 386. Ответов 8
Метки нет (Все метки)

Здравствуйте. У меня есть батник, который проходит авторизацию на сайте http://student.mitso.by. Скажите, пожалуйста, как можно измерить время загрузки страницы после авторизации http://student.mitso.by/login_stud.php (с профилем пользователя) и записать это время в лог-файл time.log.

Garry Galler из темки по Batch (CMD/BAT) помог мне создать такой батник. Но у меня время загрузки страницы в файл не записывается

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
@set @script=0 /*
@echo off
set @script=
@cscript /nologo /e:jscript "%~dpnx0"
pause
@exit /b
*/
 
var url,login,password,filepath;
url      = "http://student.mitso.by";
// заменить на свои учетные данные
login    = "1900";
password = "1900";
filepath = "time.log";
 
var IE = WScript.CreateObject("InternetExplorer.Application","IE_");
IE.visible = 1;
IE.navigate(url); 
 
while (IE.Busy) {
  WScript.Sleep(200);
}
 
IE.document.getElementsByName("login")(0).value = login;
IE.document.getElementsByName("password")(0).value = password;
button = IE.document.getElementsByClassName('orangebutton')(0);
button.focus();
button.click();
 
// стартуем измерение 
var start = new Date();
var s = "";
s += start.getDate();
s += start.getMonth()+1;
s += start.getFullYear()+" ";
s += start.toLocaleTimeString();
 
// цикл для поддержания работы скрипта
while (1) {
    WScript.Sleep(100);
}
 
//NavigateComplete2 - альтернатива  DocumentComplete
// ждем события DocumentComplete
var event;
 
function IE_DocumentComplete() {
  event=!event;
  //==========================================
  WScript.Echo("event:" + event);
  WScript.Echo(IE.locationURL);
  // чтобы не срабатывало на загрузку первого документа - ставим проверку по url
  //if (IE.locationURL=="http://student.mitso.by/login_stud.php") {
  // или делаем проверку на повторный вызов посредством инвертации значения переменной
  if (!event) { 
  // заканчиваем измерение 
  var elapsed = new Date() - start;
  // начало перехвата ошибок
  try{
    // запись результата в файл через объект FSO
    var FSO = WScript.CreateObject("Scripting.FileSystemObject");
    var file = FSO.OpenTextFile(filepath, 8, 1)  // файл открывается для дозаписи в конец
    file.WriteLine("Страница загружена за " + elapsed/1000 + " сек.---"+s);
    WScript.Echo("Страница загружена за " + elapsed/1000 + " сек.---"+s);
   }
  catch(e) {
    if (e!=0){
    msg="Ошибка\n" + "Код: " + e.number +"\nОписание: " + e.description;
    WScript.Echo (msg);
           }
  } finally {
       if (file) {file.Close();WScript.Echo("Файл " + FSO.GetFile(filepath).Path + " закрыт.")}
       WScript.Quit(); // завершаем скрипт 
  } // конец перехвата ошибок
//==========================================
  }
}  // =>IE_DocumentComplete
 
 
function IE_OnQuit() {
  WScript.Quit();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2015, 11:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Измерение времени загрузки страницы после авторизации (JavaScript):

Перезагрузка отдельной картинки страницы, после загрузки страницы
Возникла необходимость перезагрузки отдельной картинки страницы после вывода...

Отображение страницы после полной загрузки
Добрый день Есть простая страничка: извне подключается css и десяток таблиц....

Запустить скрипт после загрузки страницы
Проблема древняя, но всё ещё актуальная. И мне самому удивительно, что я не...

Переход к якорю после загрузки страницы
В процессе генерации страницы динамически формируются, например, <a...

Сортировка сразу после загрузки страницы.
Есть скрипт сортировки таблиц все отлично работает, но сортирует только по...

Скрытие картинки после загрузки страницы
допустим есть картинка (промо-блок), как сделать её сворачивание (анимацию...

8
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
01.07.2015, 13:11 #2
anastasia_b, а что именно не записывается?
вообще ничего или какая-то фигня всё таки появляется
0
anastasia_b
1 / 1 / 1
Регистрация: 28.04.2013
Сообщений: 45
01.07.2015, 14:00  [ТС] #3
BANO, знаете, я недавно перезагружала компьютер, и после вашего вопроса запустила батник, чтобы еще раз перепроверить. И у меня в файл записалось:
Страница загружена за 2.144 сек.---172015 13:54:18

Но потом запускаю, и ничего не записывается. Подскажите, пожалуйста, в чем может быть проблема? Почему записывает только один раз?
0
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
01.07.2015, 15:39 #4
anastasia_b, это может быть потому, что например файл не закрыт после записи или по тому что этот скрипт остаётся работать

но вот выход из кода я вижу, и закрытие файла я вижу
и честно говоря не понимаю в чём может быть проблема

Добавлено через 2 минуты
anastasia_b, и проблема в том что я не могу и проверить его у меня нету ни логина не пароля

будем пытаться зайти на этот форум))

Добавлено через 10 минут
anastasia_b, почему-то у меня работает как часы

всё записывает, переходит, показывает логи и в файле всё есть
0
anastasia_b
1 / 1 / 1
Регистрация: 28.04.2013
Сообщений: 45
02.07.2015, 09:02  [ТС] #5
BANO, я заметила, что когда я закрываю окно IE, а затем открываю вновь - записывает.
Но при открытом окне IE и после повторного запуска батника - не пишет.

И на другом компьютере проверяла, та же самая проблема. На обоих компах Win 7 64-разрядная и IE 11. В чем же может быть дело?

Добавлено через 2 минуты
BANO, может быть дело в IE... А можете помочь переделать код, чтобы запускалось в браузере по умолчанию (у меня это Mozilla Firefox)?
0
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
02.07.2015, 14:12 #6
anastasia_b, дело не в ie а в том что батник пытается запустить уже запущенную программу, что и не даёт результата

а вот переписать скрипт под другой браузер не получится, так как только ie входит в состав объектов jscript
0
anastasia_b
1 / 1 / 1
Регистрация: 28.04.2013
Сообщений: 45
02.07.2015, 14:43  [ТС] #7
Цитата Сообщение от BANO Посмотреть сообщение
дело не в ie а в том что батник пытается запустить уже запущенную программу, что и не даёт результата
BANO, т.е. нужно прописать закрытие программы IE после исполнения скрипта?
0
Garry Galler
1264 / 1007 / 373
Регистрация: 28.10.2013
Сообщений: 2,563
02.07.2015, 16:09 #8
anastasia_b
На 32-битной windows никакой проблемы с повторным запуском батника при открытом окне IE не происходит. Просто запускается еще одно окно и скрипт отрабатывает повторную авторизацию и запись в файл.
Единственно, если сымитировать ошибку - сделать невыполнимым условие для перехода в ветку "// заканчиваем измерение" (где после происходит еще завершение скрипта по команде WScript.Quit()), то остается (будучи незавершенным) висеть в памяти процесс cscript.exe и запись в файл не происходит. Что, естественно, так как условие не выполняется. Но это - только при искусственно смоделированной ошибке.
Впрочем, на всякий случай можно подстраховаться от зависания процесса cscript с выполняющимся скриптом - в верхнюю часть батника перед строчкой
Код
@cscript /nologo /e:jscript "%~dpnx0"
можно добавить код
Код
tasklist /FI "IMAGENAME eq cscript.exe" |>nul find /i "cscript.exe" && taskkill /F /IM "cscript.exe"
И имеющийся процесс интерпретатора (если он есть) - будет отрубаться перед запуском нового.
Способ, конечно, грубоватый, но по-другому в батнике сложно реализовать.
Но если проблема не в cscript.exe - тогда я не знаю, что еще не так. К, сожалению, проверить на текущий момент скрипт на 64-битке не могу.
0
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
02.07.2015, 16:33 #9
Garry Galler, у меня 64
тоже просто открывает новое окно, и всё записывает как миленький

Добавлено через 2 минуты
единственное на что он ругается, это на то что если после первого запуска не выйти, то тестовый сайт(pgu.mos.ru) перенаправляет на главную страницу, а скрипт пытается найти на сайте элементы с указанными id, и выдаёт ошибки, так как таких инпутов на главной странице вообще не существует
0
02.07.2015, 16:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2015, 16:33
Привет! Вот еще темы с решениями:

После загрузки страницы появляются лишние стили в элементе li
Приветствую всех! Люди добрые, ради господа Бога помоги, не пинайте ногами, с...

Как после полной загрузки страницы автоматически запустить flash player
Как автоматически запустить этот плейер после полной загрузки страницы? <html...

скрипт производящий после загрузки страницы содержащей изображение циклическое увеличение и уменьшение размеров изображения
Помогите пожалуйста! скрипт производящий после загрузки страницы содержащей...

Измерение времени между щелчками мыши
Всем привет! Помогите пожалуйста со следующим заданием: Напишите программу,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru