Перейти к содержимому

Публикации Rumata

65 публикаций создано Rumata (учитываются публикации только с 28 сентября 2023)



#46392 Tc Не Видит Кнопку По Которой Надо Кликнуть

Отправлено автор: Rumata 11 сентября 2007 - 11:07 в SmartBear (AutomatedQA) - Functional Testing

Пасиб Большое Refresh помог!!!
весь день экспериментировал со всякой лабудой, а так не догадался :)

А насчет ошибок: бывает при одном запуске скрипт отрабатывает а потом нет, еще было рабочие процедуры перестали работать, потом ради эксперимента убрал комментарии на других которые делали совершенно другие действия и всё заработало...



#46366 Tc Не Видит Кнопку По Которой Надо Кликнуть

Отправлено автор: Rumata 11 сентября 2007 - 06:17 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте все у меня такая вот ошибка, второй день над ней мучаюсь

Использую TectComplete 5.12.454.7
Тестируемая программа написана на java
язык скрипта Delphi

Суть программы такова, есть удалённые Unix сервера которые чего там делают
Программа же их администрирует

так вот
у меня еся на форме проги кнопка "Отчёты" по клику на ней вылазит маленькое окошко где размещены пять кнопок на различные отчеты.
ошибка вот в чем первые две кнопки сверху кликаются без проблем , третья же не хотит: в логе лезит ошибкаThe window is disabled. The action cannot be executed.

Так вот пробовал вчера первые две процедуры комментировать - не работало, теперь же работает клик по третьей кнопке если нет первых процедур
весь прикол в том что процедуры идентичны почти там просто разные имена кнопок
и по проверке кнопка как бы существует
if Sys.Process('javaw').SwingObject('JDialog', 'Окно отчетов ', -1).SwingObject('JRootPane', '', 0).SwingObject('null.layeredPane').SwingObject('null.contentPane').SwingObject('Box', '', 0).SwingObject('JButton', 'Отчет о перезагрузках прикладного сервера', 2).Exists then
begin
// кликаем по кнопке о выводе отчёта( 3-й с верху)
// кнопку он видит пробуем кликнуть
Log.Message('Кнопка экзистится пробуем кликануть по ней');
Sys.Process('javaw').SwingObject('JDialog', 'Окно отчетов ', -1).SwingObject('JRootPane', '', 0).SwingObject('null.layeredPane').SwingObject('null.contentPane').SwingObject('Box', '', 0).SwingObject('JButton', 'Отчет о перезагрузках прикладного сервера', 2).Click();
t := true;
end

исключение не возникает код рабочий.

и скажите ещё у testcomplita порой глюки лезят , это нормальный режим работы ? :)

пробовал ставить у окна свойсва enabled и focus в true всё равно не работает
refresh тоже не работает

скриншот прилагаю
и полный код скрипта
Помогите пожалуста, или есть у кого нить какие идеи по этому поводу

Прикрепленные файлы




#52851 WEB testing

Отправлено автор: Rumata 13 февраля 2008 - 10:43 в SmartBear (AutomatedQA) - Functional Testing

Вопрос № 2 :)

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


У нас была такая же проблема

Метод Find (даже если бы и помогал) работает так долго что всё преимущество автоматизации убивается
Решения:

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



#47373 Буфер обмена

Отправлено автор: Rumata 05 октября 2007 - 10:04 в SmartBear (AutomatedQA) - Functional Testing

TC 5.12.454.7
Delphiscript

Привет всем!
Подскажите как можно записать в текстовый файл содержимое буфера.
Мне нужно переписать файл.



#47432 Буфер обмена

Отправлено автор: Rumata 08 октября 2007 - 10:36 в SmartBear (AutomatedQA) - Functional Testing

вот как на delphiscript:


AssignFile( fff, 'c:\123.txt' );
try
Rewrite(fff);
Write(fff,Sys.Clipboard);
finally
CloseFile( fff );
end;



#52854 Вопрос о лицензии на ТестКомплит

Отправлено автор: Rumata 13 февраля 2008 - 10:56 в SmartBear (AutomatedQA) - Functional Testing

У меня складывается такое впечатление что я один работаю на крякнутой версии :clapping:



#47492 Как определить был ли создан файл

Отправлено автор: Rumata 09 октября 2007 - 10:22 в SmartBear (AutomatedQA) - Functional Testing

Рекомендую почитать вот это надеюсь поможет тут находиться очень хорошее руководство!!!


Спасибо!



#47462 Как определить был ли создан файл

Отправлено автор: Rumata 09 октября 2007 - 05:11 в SmartBear (AutomatedQA) - Functional Testing

есть идеи, исходника нету :)

варианты:
1) перед запуском программы удалять из папки все XLS файлы, а в нужный момент проверять, что файл с таким расширением появился

2) я так предполагаю, что это какой-то репорт, который генерится при определенных условиях (например, при нажатии на кнопку в приложении). В момент, когда наступают эти условия, можно запомнить время с точностью до минуты и потом проверить, что файл XXXX_YYYYMMDDHHNN**.xls существует. Тут есть один недостаток: допустим, вы запомнили время в момент 11:59:59 и нажали соответствующую кнопку в приложении. Естественно, что файл не будет иметь имя XXX_20071008115959, а будет типа XXX_20071008120030. Еще хуже, если скрипт запомнит время ночью, скажем в 23-59-59/ Там изменится не только время, но и дата

3) ваш вариант с простой проверкой количества файлов не очень удачный, так как в этой папке могут создаваться/удаляться и другие файлы, что повлияет на результат непредсказуемо. То же самое касается проверки даты модификации директории. Если уж и проверять количество, то только файлов формата XXX_YYYY*****.xls

Сам я, когда решал подобную задачу (правда, с помощью СилкТеста, но это не важно), использовал вариант 1+2, т.е. сначала удалял все подобные файлы, потом дожидался, пока текущее время будет HH:NN:01, запоминал эти HH:NN и генерировал репорт, а потом проверял наличие файла XXX_YYYYDDMMHHNN**.xls. У такого варианта есть только один способ свалиться: если запоминаемое время прийдется как раз на 23:59 и файл будет генерироваться больше минуты, что обычно не наблюдается и вообще маловероятно =)


да тоже были похожие мысли
В этой директории файлы никакие другие файлы больше не создаются поэтому ошибок не возникнет
Поэтому самый оптимальный вариант пересчитывать каждый раз количество файлов в директории и по изменившемуся количеству определить создался файл али нет.
Мне в принципе не важно контролировать параметры файла кроме расширения. нужно зафиксировать только то что файл с расширением ".xls" добавился в данную директорию

Только я не знаю как это сделать а время поджимает



#47491 Как определить был ли создан файл

Отправлено автор: Rumata 09 октября 2007 - 10:15 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте.



Вот, примерчик сделал.

function getNewFiles(path, oldFileList);
var
  i : Integer;
  SearchRec : TSearchRec;
  newFileList;
begin
  SearchRec := TSearchRec;
  i := FindFirst(path, faAnyFile, SearchRec);
  
  newFileList := '';
  while i = 0 do
  begin
	  if Pos(Utilities.LowerCase(SearchRec.Name), Utilities.LowerCase(oldFileList)) = 0 then
	  begin
		  newFileList := newFileList + SearchRec.Name + #13#10;
	  end;
	  i := FindNext(SearchRec);
	end;
  Utilities.FindClose(SearchRec);
  
  Result := Utilities.Trim(newFileList);
end;

procedure Main;
var
  path, fileList, newFileList; 
begin
  path := 'C:\Folder\*.xls';
  fileList := getNewFiles(path, '');
  Log.Message(path, fileList);

  //.. Создать файл
  
  newFileList := getNewFiles(path, fileList);
  Log.Message(path, newFileList);
end;



ОГРОМНОЕ СПАСИБО!!!
Всё получилось!



#47430 Как определить был ли создан файл

Отправлено автор: Rumata 08 октября 2007 - 10:12 в SmartBear (AutomatedQA) - Functional Testing

delphiscript

Тут опять вопрос появился, может кто что подобное делал?

У меня тестируемое приложение при моих определенных действиях создает в нужной директории файл формата ХХХХХХХХХ_20071008152634.xls

В конце имени файла набор типа датавремя . Дело в том что я не могу точно определить момент создания файла и следовательно узнать его имя, но вне нужно точно знать, создался он или нет.
Может сканировать количество файлов в директории и сравнивать с прошлым значением, а может смотреть в атрибутах директории дату модификации??

Есть у кого нить идеи?
если можно то с исходником



#48941 Пожирание памяти TC

Отправлено автор: Rumata 14 ноября 2007 - 08:44 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте.

На мой взгляд, такая проблема нуждается в исследовании под профайлером. А это могут сделать только разработчики TestComplete. Вам необходимо написать им на support@automatedqa.com и предоставить пример, воспроизводящий проблему (или просто шаги как этого добится без примера). Насколько я знаю их отношение к подобным проблемам, в следующем обновлении её пофиксят.

я переставил тесткомплит и теперь она занимает всего 20 метров памяти :-)
Теперь примерчик не представишь, правда выгружается всё равно долго, когда терпение кончаеться приходиться таск менеджером убивать
А что на support писать "Программа виснет, помогите!"? глупо по моему причину всё равно не определишь...
поэтому буду чуть мучиться... :-)



#48930 Пожирание памяти TC

Отправлено автор: Rumata 14 ноября 2007 - 03:12 в SmartBear (AutomatedQA) - Functional Testing

Люди подскажите пожайлуста почему ТС 5.12 так жрёт ресурсы
При загрузке в памяти занимает сразу же 60метров а после получаса работы 150-200 и файл подкачки раздувается до гига
ничего такого я не делаю: картинки в логи не пишу(чистил логи та же картина).
Первоначально вроде не так было, переставлять придётся что ли?


а как вы проверяете, что он столько отжирает?
вообще в ньюсгруппе было много вопросов по этой теме
то же самое касается "вылетов" и "зависаний" ТК после долгой работы

из того, что я помню по этой теме: был вопрос как и тут: почему ТК жрет столько ресурсов?
один из ответов был такой: на самом деле это проблема Windows Task Manager, и что мол если через полчаса работы, когда ТК сожрал много памяти, перестартовать Таск Менеджер, то можно увидеть, что ТК опять занимает 70-80 мегабайт.

Посоветовать могу лишь перезапускать ТК (если, конечно, вы говорите о росте используемой памяти во время запусков скриптов, а не во время их написания).

Вот несколько ответов от АКуА саппорта (можете и сами поисать в их ньюсгруппе, я искал по слову "memory")

Most probably, the high memory consumption is caused by the large number
of ODT classes and objects created during the script execution.
Have you tried clearing ODT data and classes when they are no longer
needed by the script?


The problem occurs because of the large amount of Load Testing results - all results are stored in memory until the test run is completed.
It is not possible to disable the Load Testing log.

The only solution I can propose is to split the test in parts and run them individually


Hi Support,
When I use Files.Compare function to compare two large binary files (each one is about 400Mb), I got exception "Out of memory while expanding memory stream".
=====
Thank you for reporting the issue. We will try to fix it in one of future versions of the tool (but not in the upcoming update).

In the meantime, I suggest that you use a third-party file comparing utility. You can set up such a utility in TestComplete so that it is used when the Files.Compare method is called. Please see the 'Stores Options Dialog' help topic for details.


I have tracked it down to the very long strings assigned to variables in the editor. Removing those stops the memory leak. Temporarily, I've been reading those values into a variable from a file instead. It does seem to be the long strings in the editor - see the project. Just opening it and starting to edit that code will cause it to start. Then, just open up your windows task manager and watch your swap file usage in the performance tab begin to grow


We think that the problem you faced is caused by a great number of HTML elements located on the tested web page: If their number exceeds 5000, the memory consumption you observe is normal. To check our assumption, please check the value of the page's document.all.ChildCount property in TestComplete


устал...
а там еще много...
короче, в любом случае, там слишком много факторов, которые могут влиять (тип приложения, тип тестирования, наличие/отсутствие виртуальных машин, и т.д.), так что вам надо в саппорт


Да мне в принципе не критично...
Проверял через Таск Менеджер(память жрётся во время написания скриптов)
Конечно если перестартовать TC ресурсы освобождаются, но у меня тс вырубаеться почемуто минут 5
Закрываю свой проект(file --> close), по идее должны ресурсы освободиться(чего не происходит) а затем закрываю сам TC и у меня таск менеджер показывает освобождение памяти медлено-медленно... если за пол минуты высвободиться метров 30, то это уже хорошо, машина вроде не слабая...
Впрочем это всё риторика...
Всегда памяти будет мало, а программы будут подтормаживать...



#48887 Пожирание памяти TC

Отправлено автор: Rumata 13 ноября 2007 - 12:02 в SmartBear (AutomatedQA) - Functional Testing

Люди подскажите пожайлуста почему ТС 5.12 так жрёт ресурсы
При загрузке в памяти занимает сразу же 60метров а после получаса работы 150-200 и файл подкачки раздувается до гига
ничего такого я не делаю: картинки в логи не пишу(чистил логи та же картина).
Первоначально вроде не так было, переставлять придётся что ли?



#57687 Почему код работает ТАК ?

Отправлено автор: Rumata 25 июня 2008 - 05:37 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте!

Сейчас делал импорт данных из смд, но столкнулся с проблеммой их вводить :)
так вот данные вводяться прекрасно, пока я незапускаю батник из смд, после данные вводяться как одна строка, но если ввести [Enter], то потом данные опять вводяться в поток нормально, объясните почему такое бывает.

вот процедурина
procedure Main;
   var 
   dir,f : string;
   k : integer;
   p, input, output,cmd;
   begin	
   p := dotNET.System_Diagnostics.Process.zctor();
   p.StartInfo.FileName := 'c:\Windows\System32\cmd.exe';
   p.StartInfo.UseShellExecute := false;
   p.StartInfo.RedirectStandardOutput := True;
   p.StartInfo.RedirectStandardInput := True;
   p.Start;
   f := read_name_install_file;
   k := PosEnd(f);
   dir := copy(f,1,k-1);
   f := copy(f,k+1,length(f)-k);  
   input := p.StandardInput;
   output := p.StandardOutput;
   cmd := Sys.Process('cmd',2).Window('ConsoleWindowClass', '*');
   //cmd.Keys('[Enter]');
   input.WriteLine_11('cd '+dir);
   input.WriteLine_11(f);
   input.WriteLine_11('C:\j2sdk1.4.2_12');
   cmd.Keys('[Enter]'); //без этой строки все команды, начиная с предыдущей, 
		 //объединяються в одну и вводятся как одна
   input.WriteLine_11('C:\Sop\jboss-portal-2.6.1.GA');
   input.WriteLine_11('update');
   input.WriteLine_11('127.0.0.1');
   input.WriteLine_11('quit');
 
   while not p.HasExited do 
	 Delay(1000);
   while not output.EndOfStream do
	 Log.Message(output.ReadLine());
   //dotNET.System_Diagnostics.Process.zctor.
   end;



#57711 Почему код работает ТАК ?

Отправлено автор: Rumata 25 июня 2008 - 09:24 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте.

А можно узнать, что такое 'read_name_install_file' и 'PosEnd'?


процедуры

read_name_install_file - возвращает полное имя файла который я запускаю в цмд

PosEnd -
последнее вхождение символа в строку


вот я переделал немного, правда теперь приходиться ентер жать после каждого ввода команды :friends:
procedure Main;
  var 
  dir,f : string;
  k : integer;
  p, input, output,cmd;
  st : boolean;
  s : string;
  ss : widestring;
  begin 
  opred_form_log;
  file_mame_rez_log := 'Install_server_rezult_log.mht';
  ResultDir := 'C:\NAT_EAR_COPY_RESULTS\';
  ArchiveDir := 'C:\artifakts\';   
  p := dotNET.System_Diagnostics.Process.zctor();
  p.StartInfo.FileName := 'c:\Windows\System32\cmd.exe';
  p.StartInfo.UseShellExecute := false;
  p.StartInfo.RedirectStandardOutput := True;
  p.StartInfo.RedirectStandardInput := True;
  p.Start;
  f := read_name_install_file;
  k := PosEnd('\',f);
  dir := copy(f,1,k-1);  // директория запускаемого батника
  f := copy(f,k+1,length(f)-k); // здесь имя батника который запускаю 
  input := p.StandardInput;
  output := p.StandardOutput;
  cmd := Sys.Process('cmd',2).Window('ConsoleWindowClass', '*'); // вторая запущеная цмд
  input.WriteLine_11('cd '+dir); // переход в директорию батника
  input.WriteLine_11(f); // запуск батника
  // теперь идут запросы батника
  input.WriteLine_11('C:\j2sdk1.4.2_12'); // ввод корня  jsd
  cmd.Keys('[Enter]');					  // эмуляция долбанного ентера
  input.WriteLine_11('C:\Sop\jboss-portal-2.6.1.GA');   // ввод корня  jboss-portal-
  cmd.Keys('[Enter]');				// эмуляция долбанного ентера
  input.WriteLine_11('update');	   // выбор сбособа установки
  cmd.Keys('[Enter]');				// эмуляция долбанного ентера
  input.WriteLine_11('127.0.0.1');	// айпи сервера
  cmd.Keys('[Enter]');				// эмуляция долбанного ентера
  input.WriteLine_11('quit');		 //выход
  st := false;
  Log.Message('3');
  while not p.HasExited do // если еще цмд открыто
	Delay(500);
  ss := '';
  Log.Message('4');
  while not output.EndOfStream do
	begin
	if not(st) then
	  if (pos('INFO  [Server] JBoss ',s)<> 0) and (pos('Started in',s)<> 0) then
		st := true;
	s := output.ReadLine();
	ss := ss+#13+s;	
	end;
  Log.Message('Лог запуска сервера', ss, pmNormal, debug_attr );   
  if st then
	Log.Message('Сервер запущен!', '', pmNormal, debug_attr )  
  else
	Log.Message('Сервер не был запущен!', '', pmNormal, error_attr ); 
  ExportResults(ResultDir + file_mame_rez_log);
  add_results_archive(file_mame_rez_log);
  if st then  
	SendEmail(e-mail, e-mail, 'Логи автоинсталлирования сервера', 'На север была успешно произведена установка обновления'+#13+'Логи во вложении', ArchiveName+'.rar')
  else
	SendEmail(e-mail, e-mail, 'Логи автоинсталлирования сервера', 'Установка обновления на север была не удалась'+#13+'Логи во вложении', ArchiveName+'.rar');
  end;



#57804 Почему код работает ТАК ?

Отправлено автор: Rumata 26 июня 2008 - 11:27 в SmartBear (AutomatedQA) - Functional Testing

вот весь уже скока мучусь, как то криво получается :(((

может кто знает, извлечь данные из цмд?

причем просто перенаправлять не получиться так как я запускаю батник(а он jar-ник) а потом уже общаюсь с ним.

сей час немного прогу переделал, добавил Delay(1000); после каждого writeline, так команды стали выполняться(интересно с какого?) но в выходной поток не все данные пишутся выводит пары десятков строчек лога и всё :(

в чём причина хз

подскажите пожалуста возможные решения



#57830 Почему код работает ТАК ?

Отправлено автор: Rumata 27 июня 2008 - 04:54 в SmartBear (AutomatedQA) - Functional Testing

Привет!

А если на потоке ввода взвести свойство AutoFlush? Поток наверняка буферизованый и то что вы в него пишете, скорее всего, какое-то время лежит в буфере.
Например:
Код output.BaseStream.SetLength(100000);

input.AutoFlush := true;

Или вручную дергать метод Flush, после каждой записи в поток.

Возможно, буфер влияет и на поток вывода. Он переполянется и все. Что если у базового потока увеличить длину.
Вот так:
output.BaseStream.SetLength(100000);


не получается

Здравствуйте.

Я не совсем понял, а CMD.exe в конце закрывается или нет? Если нет, по попробуйте закрывать его (только корректно) перед попыткой чтения выходного потока.

По поводу необходимости нажатия Enter -- это, наверно, приложение не так отрабатывает нажатия, как CMD. Попробуйте использовать метод Write_10(MyCommand + #13).


смд закрываеться , там ведь есть команда quid
Write_10(MyCommand + #13) не работает

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

теперь вот пытаюсь стабилизировать всё что делал...



#55489 доступ к объекту

Отправлено автор: Rumata 17 апреля 2008 - 03:37 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте.

Попробуйте использовать метод WaitProperty:

var metka = <metkaObj>;
 
   metka.WaitProperty("Visible", false, 60000);


попробовал, не получаеться...
вот как сделал:
if (Evaluate(tpm_n_obj+'.WaitProperty(''Visible'', true, 60000)'))and(Evaluate(tpm_n_obj+'.WaitProperty(''enabled'', true, 60000)'))and(Evaluate(tpm_n_obj+'.WaitProperty(''exists'', true, 60000)'))then

если выполняеться то я жду секунду и по новой пытаюсь достучаться

условие всегда выполняеться хотя объекта на портлете нет :yahoo:

у меня теты на виртуальной машине, может это влияет, хотя раньше не замечал ни за чем подобном...



#55333 доступ к объекту

Отправлено автор: Rumata 14 апреля 2008 - 10:44 в SmartBear (AutomatedQA) - Functional Testing

Здравстуйте!

Столкнулся с такой штукой, не знаю что делать:

у мня есть web интерфейс написанный на AJAX
так вот там есть портлет на котором я делаю какие либо действия,
итак, я, например, выбираю некоторый пункт списка, нажимаю "переместить", после этого у меня на на портлете появлеться метка с анимацией "пожалуста ждите".
Я в коде проверяю наличие метки таким способом:
sys.refresh;
delay(zdk);
if (метка.exists)and(метка.visible)and(метка..enabled) then
 бла-бла-бла

так вот начало имени объекта(метки) я изменяю добавив метод "Wait" получаеться sys.wait<остальное имя>

проблема в том что когда объект исчезает с портлета скрипт его видит и не делает то что мне надо!

в браузере объектов я смотрел, и там этот объект исчезает как только отработает...

незнаю что за .....

Кто нить встречался с подобным?



#57769 кодировка текста писем

Отправлено автор: Rumata 26 июня 2008 - 04:15 в SmartBear (AutomatedQA) - Functional Testing

modbear, спасибо помогло

serpent , правильно мой косяк :) я правда переделал чтоб тело письма было текстовое, т.к. мне это не критично. Ради интереса попробовал передавать хтмл, но максимум чего добился так это,то что если ставлю кои8р в кодировке у меня когда письмо приходит во всплывающей подсказке текст читабельный, а при открытии он опять кракозябрами :(
вот я решил не заморачиваться и передавать "текстовое тело" письма :)



#57727 кодировка текста писем

Отправлено автор: Rumata 25 июня 2008 - 11:30 в SmartBear (AutomatedQA) - Functional Testing

Здравствуйте!

тут вот такая чтука делаеться...
отправляю письмо а его текст в кракозябре, причём OUTLOOK тему нормально распознаёт
кракозябрами только текст письма
пробовал сохранять исходники скрипта в ANSI и UTF8, и всё равно такаяже картина :(
подскажите как это можно решить
вот сама процедура:
function SendEmail(mFrom, mTo, mSubject, mBody, mAttach);
var
  i, schema, mConfig, mMessage : OleVariant;
begin
  
  try
	schema := 'http://schemas.microsoft.com/cdo/configuration/';
	mConfig := Sys.OleObject('CDO.Configuration');
	mConfig.Fields.Item(schema + 'sendusing') := 2; // cdoSendUsingPort
	mConfig.Fields.Item(schema + 'smtpserver') := 'бла.бла.бла'; // SMTP server
	mConfig.Fields.Item(schema + 'smtpserverport') := 25; // Port number
	// mConfig.Fields.Item(schema + 'sendusername') := ''; // User name (if needed)
	// mConfig.Fields.Item(schema + 'sendpassword') := ''; // User password (if needed)
	mConfig.Fields.Update();
	
  
	mMessage := Sys.OleObject('CDO.Message');
	mMessage.Configuration := mConfig;
	mMessage.From := mFrom;
	mMessage.To := mTo;
	mMessage.Subject := mSubject;
	mMessage.HTMLBody := mBody;
	for i := 0 to GetCSVCount(mAttach) - 1 do
	  mMessage.AddAttachment(GetCSVItem(mAttach, i));
	mMessage.Send();
	Log.Message('Сообщение отправленно!', 'Адресат - '+mTo, pmNormal, debug_attr );
	Result := True;
  except
	Log.Message('Сообщение не отправленно!', '', pmNormal, error_attr );
	Result := False;
  end;
end;



#50551 некорректный ввод данных

Отправлено автор: Rumata 14 декабря 2007 - 10:45 в SmartBear (AutomatedQA) - Functional Testing

Использую
TC 5.12
delphiscript
тестируется веб интерфейс

Так вот ситуёвина такая у меня переменняя в которой записанно 1q2w!Q@W это пароль, когда я его ввожу в поле ввода пароля, восклицательный знак не вводиться, вводиться только 7 символов.

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



#48591 по строковому имени процесса сделать действие

Отправлено автор: Rumata 07 ноября 2007 - 02:53 в SmartBear (AutomatedQA) - Functional Testing

ОГРОМНОЕ СПАСИБО!!!
РАБОТАЕТ!!!
правда нужно изменить на

Evaluate (arr[i] + '.Click;')


да, в ДелфиСкрипте я не силен, однако. Ну, работает - и отлично


Нет, вы правильно написали, по идее у события "клик" есть параметры, а если их не указывать то можно ставить пустые скобки, но видимо сама функция "Evaluate" чего то там преобразовывает и поэтому потом ругается на эти самые скобки



#48532 по строковому имени процесса сделать действие

Отправлено автор: Rumata 06 ноября 2007 - 11:15 в SmartBear (AutomatedQA) - Functional Testing

delphiscript
tc 5.12


Привет Всем
Проблема вот в чём:

Есть файл 123.txt
в нём написаны имена процессов:
Sys.Process('calc').Window('SciCalc', 'Калькулятор').Window('Button', 'CE')
Sys.Process('calc').Window('SciCalc', 'Калькулятор').Window('Button', '7')
Sys.Process('calc').Window('SciCalc', 'Калькулятор').Window('Button', '8')
Sys.Process('calc').Window('SciCalc', 'Калькулятор').Window('Button', '9')
и так далее
теперь в скрипте я считываю имена процессов в массив(olevariant)

mass_obj := BuiltIn.CreateVariantArray(1, kk); // присваиваю массиву длину
while not eof(f) do
begin
kk := kk + 1;
readln( f, s);
mass_obj[kk] := s;
end;

потом в другой процедуре пытаюсь кликнуть
l_mass_obj := BuiltIn.CreateVariantArray(1, dl_mass); // присваиваю массиву длину
l_mass_obj := mass_obj;
tpm := l_mass_obj[l_i];
tpm.click();

tc ругается на неизвестное имя click
подскажите пжл как можно сделать то что я хочу



#48537 по строковому имени процесса сделать действие

Отправлено автор: Rumata 06 ноября 2007 - 12:03 в SmartBear (AutomatedQA) - Functional Testing

delphiscript
tc 5.12
tc ругается на неизвестное имя click
подскажите пжл как можно сделать то что я хочу


т.е. вы пытаетесь из строк сделать объекты?
это, конечно, возможно, но не так, как вы пытаетесь сделать (через VariantArray)

если я правильно понял, задача звучит так: есть текстовый файл, в котором хранятся имена объектов, по которым надо кликать. Хранятся в текстовом виде.

Вам проще сделать так: считать содержимое файла в массив, а затем для каждого элемента массива делать так
допустим, массив строк называется arr

Evaluate (arr[i] + '.Click();')
не уверен, но по-моему знак "+" в делфискрипте означает конкатенацию строк.
Основной момент здесь - это использование функции Evaluate, которая позволяет выполнить любой кусок текста, как код скрипта



ОГРОМНОЕ СПАСИБО!!!
РАБОТАЕТ!!!
правда нужно изменить на
Evaluate (arr[i] + '.Click;')