Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Hed-kun

Программирование, т. 5.1.

Рекомендованные сообщения

(изменено)

кто-нибудь писал юнит тесты на пхп? И автоматизировал прогон тестов с помощью Jenkins?


Изменено пользователем Herus

Поделиться сообщением


Ссылка на сообщение
8bp0O.jpg

быдло и горжусь этим

Поделиться сообщением


Ссылка на сообщение

Реинкарнация казика собственной персоной

блин двапой не гноби плиз мы с друзяшками в фотофании прикалывались :lol: и сурфо у меня стоит :subj: :subj:

сорри, попутал :buba:


Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение
Гость inspectornaix

Есть у нас знатоки Selenium IDE и JS?

как вяжется селениум и жс? :hmm:

В IDE можно юзать JS. Мне надо было разветвить одну проверку.. Но чет пока не допру как.

Есть форма для создания документа. В зависимости от того какой выбор юзер сделал в начала -

на след странице может быть поле "тематика". Я хотел при помощи JS сделать следующее:

 

если на странице документа есть элемент "Тематика", то я его заполняю и перехожу на next step,

если этого элемента нет, то не заполняю и так же иду на next step.

 

делается при помощи доп подключенного файлика

 

var gotoLabels= {};
var whileLabels = {};

// overload the oritinal Selenium reset function
Selenium.prototype.reset = function() {
  // reset the labels
  this.initialiseLabels();
  // proceed with original reset code
  this.defaultTimeout = Selenium.DEFAULT_TIMEOUT;
  this.browserbot.selectWindow("null");
  this.browserbot.resetPopups();
}

Selenium.prototype.initialiseLabels = function()
{
gotoLabels  = {};
whileLabels = { ends: {}, whiles: {} };
var command_rows = [];
var numCommands = testCase.commands.length;
for (var i = 0; i < numCommands; ++i) {
   var x = testCase.commands[i];
   command_rows.push(x);
}	
var cycles = [];
for( var i = 0; i < command_rows.length; i++ ) {
	if (command_rows[i].type == 'command')
	switch( command_rows[i].command.toLowerCase() ) {
		case "label":
			gotoLabels[ command_rows[i].target ] = i;
			break;
		case "while":
		case "endwhile":
			cycles.push( [command_rows[i].command.toLowerCase(), i] )
			break;	
	}
}
var i = 0;	
while( cycles.length ) {
	if( i >= cycles.length ) {
		throw new Error( "non-matching while/endWhile found" );
	}
	switch( cycles[i][0] ) {
		case "while":
			 if(	( i+1 < cycles.length )  && ( "endwhile" == cycles[i+1][0] ) ) {
				 // pair found
				 whileLabels.ends[ cycles[i+1][1] ] = cycles[i][1];
				 whileLabels.whiles[ cycles[i][1] ] = cycles[i+1][1];
				 cycles.splice( i, 2 );
				 i = 0;
			 } else ++i;
			 break;
		 case "endwhile":
			 ++i;
			 break;
	}
}
}	

Selenium.prototype.continueFromRow = function( row_num )
{
if(row_num == undefined || row_num == null || row_num < 0) {
	throw new Error( "Invalid row_num specified." );
}
testCase.debugContext.debugIndex = row_num;
}

// do nothing. simple label
Selenium.prototype.doLabel	  = function(){};

Selenium.prototype.doGotolabel  = function( label )
{
if( undefined == gotoLabels[label] ) {
	throw new Error( "Specified label '" + label + "' is not found." );
}
this.continueFromRow( gotoLabels[ label ] );
};

Selenium.prototype.doGoto = Selenium.prototype.doGotolabel;

Selenium.prototype.doGotoIf = function( condition, label )
{
if( eval(condition) ) this.doGotolabel( label );
}

Selenium.prototype.doWhile = function( condition )
{
if( !eval(condition) ) {
	var last_row = testCase.debugContext.debugIndex;
	var end_while_row = whileLabels.whiles[ last_row ];
	if( undefined == end_while_row ) throw new Error( "Corresponding 'endWhile' is not found." );
	this.continueFromRow( end_while_row );
}
}

Selenium.prototype.doEndWhile = function()
{
var last_row = testCase.debugContext.debugIndex;
var while_row = whileLabels.ends[ last_row ] - 1;
if( undefined == while_row ) throw new Error( "Corresponding 'While' is not found." );
this.continueFromRow( while_row );

 

Поделиться сообщением


Ссылка на сообщение
Гость rocker25

Что такое JavaScript шаблонизатор и зачем он нужны?

Поделиться сообщением


Ссылка на сообщение
Гость rocker25
(изменено)

а вообще нах


Изменено пользователем rocker25

Поделиться сообщением


Ссылка на сообщение

да их не надо учить, там всего-то несколько выражений бывает, обычно это просто хтмл

 

я пользовался dot.js - очень простой, сейчас пользуюсь lodash template - еще проще


Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение
Гость rocker25

спс

Поделиться сообщением


Ссылка на сообщение
Гость inspectornaix

Ребят, такая проблема - в Selenium IDE цепляю текущую дату скриптом:

var d=new Date(); d.getDate()+'-'+((d.getMonth()+1))+'-'+d.getFullYear();

Месяц дергается как 4. А мне нужно чтоб он был 04.

Такое возможно сделать?

Поделиться сообщением


Ссылка на сообщение

думаю нельзя потому что ты скорее всего достаёшь integer, он не может иметь 0 перед ним

Поделиться сообщением


Ссылка на сообщение
Гость inspectornaix

Нашел: ((d.getMonth()) < 10 ? "0" + (d.getMonth()+1) : d.getMonth()+1)

Поделиться сообщением


Ссылка на сообщение

вот так вроде самый простой способ

 

(d.getMonth() > 9 ? d.getMonth().toString() : ("0" + d.getMonth()))

Поделиться сообщением


Ссылка на сообщение
Гость inspectornaix

Волнует теперь вопрос - что будет если месяц будет 12...

Поделиться сообщением


Ссылка на сообщение

тоесть getMonth() индексирует месяц с нуля?

как тогда он может выйти 12?

Поделиться сообщением


Ссылка на сообщение
Гость inspectornaix

Спасиб ребят ))

 

тоесть getMonth() индексирует месяц с нуля?

как тогда он может выйти 12?

Да, с нуля. Более убогих классов дат нет наверно нигде..

Поделиться сообщением


Ссылка на сообщение

так а в чём тогда проблема если после +1 цифра всегда будет в диапазоне 1-12?

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...