- Форум тестировщиков
- → Публикации Rumata
Публикации Rumata
65 публикаций создано Rumata (учитываются публикации только с 28 сентября 2023)
По типу контента
По пользователю
#48829 Работа с Уникодами
Отправлено автор: Rumata 12 ноября 2007 - 10:37 в SmartBear (AutomatedQA) - Functional Testing
Delphiscript
TC 5.12
Здравствуйте!
Возникла необходимость в тестовых случаях вводить буквы казахского шрифта, в системе он предустановлен.
В TC буквы алфавита вводятся нормально, но после сохранения от букв остаются одни вопросики :(
Тогда я сохранил набор символов в файле(.txt, кодировка UTF-8) и подтягиваю во время выполнения скрипта данные из него в переменную, но в лог опять же выводиться совсем не то да и в тестируемое приложение неизвестно что попадёт.
Подскажите пожайлуста как можно обойти эту проблему.
TC 5.12
Здравствуйте!
Возникла необходимость в тестовых случаях вводить буквы казахского шрифта, в системе он предустановлен.
В TC буквы алфавита вводятся нормально, но после сохранения от букв остаются одни вопросики :(
Тогда я сохранил набор символов в файле(.txt, кодировка UTF-8) и подтягиваю во время выполнения скрипта данные из него в переменную, но в лог опять же выводиться совсем не то да и в тестируемое приложение неизвестно что попадёт.
Подскажите пожайлуста как можно обойти эту проблему.
#49105 Работа с Уникодами
Отправлено автор: Rumata 19 ноября 2007 - 05:09 в SmartBear (AutomatedQA) - Functional Testing
Здравствуйте.
А компьютер перегрузили? Это опция ('Language for non Unicode programs') действует только после перезагрузки компьютера.
Ну конечно! не настолько я же безнадёжен :-)
#48860 Работа с Уникодами
Отправлено автор: Rumata 13 ноября 2007 - 04:31 в SmartBear (AutomatedQA) - Functional Testing
Здравствуйте.
Вы можете задать для проекта формат хранения скриптов UFT-16. Двойным щелчком по проекту в панели Project Explorer открываете редактор проекта, переходите на закладку Properties и меняете значение свойства 'Character Encoding' в группе опций General.
Также читайте раздел справки 'Support for Unicode'. В нём описано как TestComplete может работать с Unicode.
Спасибо теперь после пересохранения символы остаются, но в helpe ссылки на форум а тама я чего то запутался, поэтому ничего так и выяснил :(
#52625 Текстовый файл
Отправлено автор: Rumata 08 февраля 2008 - 06:47 в SmartBear (AutomatedQA) - Functional Testing
можно записать все строки в массив(я делала так) и потом из массива вытаскивала по штуке.
PS (тоже встречалась с такой фигней что не освобождался файл и потом приходилось перегружать ТС - как избавиться на 100 % так не поняла)
классная идея спасибо!!!
счас вот реализую
Сначала перекидываю весь файл в двумерный массив а потом с ним работаю.
Если не я один с этим столкнулся выложу исходники может кому поможет
#52631 Текстовый файл
Отправлено автор: Rumata 08 февраля 2008 - 09:11 в SmartBear (AutomatedQA) - Functional Testing
ошибочка:
не
s := readln(f) ---> s := massiv[q+1];
а
readln(f,s) ---> s := massiv[q];
q:= q+1;
вот примерно так
не
s := readln(f) ---> s := massiv[q+1];
а
readln(f,s) ---> s := massiv[q];
q:= q+1;
вот примерно так
#52773 Текстовый файл
Отправлено автор: Rumata 12 февраля 2008 - 05:15 в SmartBear (AutomatedQA) - Functional Testing
С массивом всё работает как швейцарские часы!
+ то что можно получить доступ к любой строке файла быстро и без проблем
большой + то что(ведь в TC нельзя открыть одновременно больше одного файла одновременно, по крайней мере в версии 5.12.454), можно одновременно обрабатывать кучу файлов на приличной скорости
+ то что можно получить доступ к любой строке файла быстро и без проблем
большой + то что(ведь в TC нельзя открыть одновременно больше одного файла одновременно, по крайней мере в версии 5.12.454), можно одновременно обрабатывать кучу файлов на приличной скорости
#52643 Текстовый файл
Отправлено автор: Rumata 08 февраля 2008 - 11:27 в SmartBear (AutomatedQA) - Functional Testing
при работе с массивами очень полезные функции - BuiltIn.VarArrayRedim() и VarArrayHighBound(). Когда точно не известно заранее сколько будет элементов в массиве без них не обойтись
А можно поподробнее насчёт этих функций?
кстати, почему не работает
for ks_i := 1 to ks do
readln(fff,m_file[ks_i]);
приходиться в массив писать через дополнительную строковую переменную
for ks_i := 1 to ks do
begin
readln(fff,qwer);
m_file[ks_i] := qwer;
end;
#52629 Текстовый файл
Отправлено автор: Rumata 08 февраля 2008 - 08:50 в SmartBear (AutomatedQA) - Functional Testing
можно записать все строки в массив(я делала так) и потом из массива вытаскивала по штуке.
PS (тоже встречалась с такой фигней что не освобождался файл и потом приходилось перегружать ТС - как избавиться на 100 % так не поняла)
классная идея спасибо!!!
счас вот реализую
Сначала перекидываю весь файл в двумерный массив а потом с ним работаю.
Если не я один с этим столкнулся выложу исходники может кому поможет
вот процедура которя пишет в массив
procedure From_file_in_file(file_ : elevariant);
var
fff; // файловая переменная
ks : integer; // количество строк в файле
ks_i : integer; // счётчик
str_f;
begin
if debug then
log.message('DEBUG: Начало процедуры перенесения файла в массив');
if not(fileexists(file_)) then
begin
Fatal_Error('Невозможно найти файл сценария: ',file_);
end;
AssignFile( fff, file_ );
Reset(fff);
// нужно определить размерность массивa
if debug then
log.message('DEBUG: Определяю размерность массива');
ks := 0;
while not(eof(fff)) do
begin
readln(fff,str_f);
ks := ks + 1;
end;
closefile(fff);
Reset(fff);
// создаю массив необходимой размерности
m_file := BuiltIn.CreateVariantArray(1, ks);
//заполняю массив
for ks_i := 1 to ks do
readln(fff,m_file[ks_i]);
closefile(fff);
if debug then
log.message('DEBUG: размерность массива: '+ inttostr(ks));
end;
в коде нужно сделать определ глоб переменную непример q
a потом заменить или делать по аналогии
reset(f) ---> q:=1
s := read(f) ---> s := massiv[q];
s := readln(f) ---> s := massiv[q+1];
вообщем всё просто и сердито :)
#52622 Текстовый файл
Отправлено автор: Rumata 08 февраля 2008 - 03:01 в SmartBear (AutomatedQA) - Functional Testing
Delphi script
Здравствуйте!
Столкнулся с такой проблемой: ассоциирую переменную с файлом
AssignFile( f, file_association );
Reset(f);
потом в скрипте у меня выполняются какие то действия по сценарию этого файла
но заморочка в том что у меня может в любой момент чтото отвалиться и файл не закрывается(использую CloseFile( f ); ), а нужно его отредактировать в реальном времени что нельзя сделать так как он заблокирован, приходиться перегружать TC
пробовал try-except, вызовы в критических кусках кода закрытия файла, но не получается отследитьвсе вариаты: либо возникает повторная ошибка закрытия либо файл блокируется
Подскажите как можно закрыть файл в людом случае при любых обстоятельствах.
А возможно ли запихать всё содержимое файла в переменную и работать с ней так же как и с файлом?
Здравствуйте!
Столкнулся с такой проблемой: ассоциирую переменную с файлом
AssignFile( f, file_association );
Reset(f);
потом в скрипте у меня выполняются какие то действия по сценарию этого файла
но заморочка в том что у меня может в любой момент чтото отвалиться и файл не закрывается(использую CloseFile( f ); ), а нужно его отредактировать в реальном времени что нельзя сделать так как он заблокирован, приходиться перегружать TC
пробовал try-except, вызовы в критических кусках кода закрытия файла, но не получается отследитьвсе вариаты: либо возникает повторная ошибка закрытия либо файл блокируется
Подскажите как можно закрыть файл в людом случае при любых обстоятельствах.
А возможно ли запихать всё содержимое файла в переменную и работать с ней так же как и с файлом?
#53004 Создание автотеста софта, до того как этот софт появился
Отправлено автор: Rumata 19 февраля 2008 - 11:39 в SmartBear (AutomatedQA) - Functional Testing
Привет Всем!
Есть ли у кого интересные идеи по этому вопросу?
Почему возникла идея написать...
Предложили мне такую штуку сделать, я сначала сказал что это в принципе не реально :)
Потом подумал и возникла идейка как это можно сделать.
идея вот в чём:
по СТПО(спецификация требований к программ обеспечен) пишется методика испытаний(ПиМИ)
Теперь составляю "файл ассоциации" эта такой файл где пишутся имена(собственно придуманные и удобные для звучания :)) предполагаемых кнопок, меток полей и др.
Потом по ПиМИ я составляю ещё один файл "файл сценария", и в нём пишу сценарий тестирования по ПиМИ.
Этот сценарий состоит из этих самых "имён" и пара десятка зарез. слов
И весь смысл того что в идеале когда придёт софт я только должен буду воткнуть в файле ассоциации напротив каждого придуманного имени, полное имя настоящего объетка на интерфейсе. и будет всё работать.
Данная система у меня более менее работает
НО
я на неё угрохал кучу времени
она на самом деле не такая уж замечательная как казалась вначале
:(
Вообщем я почти полностью разуверился в этой "Идее" и работаю с ней только потому что жаль потраченного времени и в этих скриптах неплохой набор процедур...
в принципе система неплохая, но она не окупает главного - того что автоматизация должна занимать меньше времени чем мануальное тестирование...
вот...
Если есть мысли по данному вопросу и по тому как я попытался это решить, скажите.
Есть ли у кого интересные идеи по этому вопросу?
Почему возникла идея написать...
Предложили мне такую штуку сделать, я сначала сказал что это в принципе не реально :)
Потом подумал и возникла идейка как это можно сделать.
идея вот в чём:
по СТПО(спецификация требований к программ обеспечен) пишется методика испытаний(ПиМИ)
Теперь составляю "файл ассоциации" эта такой файл где пишутся имена(собственно придуманные и удобные для звучания :)) предполагаемых кнопок, меток полей и др.
Потом по ПиМИ я составляю ещё один файл "файл сценария", и в нём пишу сценарий тестирования по ПиМИ.
Этот сценарий состоит из этих самых "имён" и пара десятка зарез. слов
И весь смысл того что в идеале когда придёт софт я только должен буду воткнуть в файле ассоциации напротив каждого придуманного имени, полное имя настоящего объетка на интерфейсе. и будет всё работать.
Данная система у меня более менее работает
НО
я на неё угрохал кучу времени
она на самом деле не такая уж замечательная как казалась вначале
:(
Вообщем я почти полностью разуверился в этой "Идее" и работаю с ней только потому что жаль потраченного времени и в этих скриптах неплохой набор процедур...
в принципе система неплохая, но она не окупает главного - того что автоматизация должна занимать меньше времени чем мануальное тестирование...
вот...
Если есть мысли по данному вопросу и по тому как я попытался это решить, скажите.
#53033 Создание автотеста софта, до того как этот софт появился
Отправлено автор: Rumata 20 февраля 2008 - 03:39 в SmartBear (AutomatedQA) - Functional Testing
эт конечно всё интересно, но я с английским не особо дружу чтоб литературу на нём читать :)
#47430 Как определить был ли создан файл
Отправлено автор: Rumata 08 октября 2007 - 10:12 в SmartBear (AutomatedQA) - Functional Testing
delphiscript
Тут опять вопрос появился, может кто что подобное делал?
У меня тестируемое приложение при моих определенных действиях создает в нужной директории файл формата ХХХХХХХХХ_20071008152634.xls
В конце имени файла набор типа датавремя . Дело в том что я не могу точно определить момент создания файла и следовательно узнать его имя, но вне нужно точно знать, создался он или нет.
Может сканировать количество файлов в директории и сравнивать с прошлым значением, а может смотреть в атрибутах директории дату модификации??
Есть у кого нить идеи?
если можно то с исходником
Тут опять вопрос появился, может кто что подобное делал?
У меня тестируемое приложение при моих определенных действиях создает в нужной директории файл формата ХХХХХХХХХ_20071008152634.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;
ОГРОМНОЕ СПАСИБО!!!
Всё получилось!
#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" добавился в данную директорию
Только я не знаю как это сделать а время поджимает
#47492 Как определить был ли создан файл
Отправлено автор: Rumata 09 октября 2007 - 10:22 в SmartBear (AutomatedQA) - Functional Testing
Рекомендую почитать вот это надеюсь поможет тут находиться очень хорошее руководство!!!
Спасибо!
#57830 Почему код работает ТАК ?
Отправлено автор: Rumata 27 июня 2008 - 04:54 в SmartBear (AutomatedQA) - Functional Testing
Привет!
не получается
смд закрываеться , там ведь есть команда quid
Write_10(MyCommand + #13) не работает
у мня счас немного задача изменилась, необходимый мне вывод данных теперь выводится в файл, так что я только ввожу данные а читаю результат после закрытия цмд из текстового файла.
теперь вот пытаюсь стабилизировать всё что делал...
А если на потоке ввода взвести свойство 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) не работает
у мня счас немного задача изменилась, необходимый мне вывод данных теперь выводится в файл, так что я только ввожу данные а читаю результат после закрытия цмд из текстового файла.
теперь вот пытаюсь стабилизировать всё что делал...
#57711 Почему код работает ТАК ?
Отправлено автор: Rumata 25 июня 2008 - 09:24 в SmartBear (AutomatedQA) - Functional Testing
Здравствуйте.
А можно узнать, что такое 'read_name_install_file' и 'PosEnd'?
процедуры
read_name_install_file - возвращает полное имя файла который я запускаю в цмд
PosEnd - последнее вхождение символа в строку
вот я переделал немного, правда теперь приходиться ентер жать после каждого ввода команды
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, так команды стали выполняться(интересно с какого?) но в выходной поток не все данные пишутся выводит пары десятков строчек лога и всё :(
в чём причина хз
подскажите пожалуста возможные решения
может кто знает, извлечь данные из цмд?
причем просто перенаправлять не получиться так как я запускаю батник(а он jar-ник) а потом уже общаюсь с ним.
сей час немного прогу переделал, добавил Delay(1000); после каждого writeline, так команды стали выполняться(интересно с какого?) но в выходной поток не все данные пишутся выводит пары десятков строчек лога и всё :(
в чём причина хз
подскажите пожалуста возможные решения
#57687 Почему код работает ТАК ?
Отправлено автор: Rumata 25 июня 2008 - 05:37 в SmartBear (AutomatedQA) - Functional Testing
Здравствуйте!
Сейчас делал импорт данных из смд, но столкнулся с проблеммой их вводить :)
так вот данные вводяться прекрасно, пока я незапускаю батник из смд, после данные вводяться как одна строка, но если ввести [Enter], то потом данные опять вводяться в поток нормально, объясните почему такое бывает.
вот процедурина
Сейчас делал импорт данных из смд, но столкнулся с проблеммой их вводить :)
так вот данные вводяться прекрасно, пока я незапускаю батник из смд, после данные вводяться как одна строка, но если ввести [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;
#52851 WEB testing
Отправлено автор: Rumata 13 февраля 2008 - 10:43 в SmartBear (AutomatedQA) - Functional Testing
Вопрос № 2 :)
При записи тестов все пишеться отлично только вот идет адресация по ячейкам таблиц не веб страницах. страницы такие что места нужных елементов могут меняться. Как можно еще к ним обращаться?
У нас была такая же проблема
Метод Find (даже если бы и помогал) работает так долго что всё преимущество автоматизации убивается
Решения:
1) Писать автотест по строго определённому сценарию, тогда можно хоть как то определить ячейки
2) самый действенный, Просить программистов чтобы они фиксировали имена объектов
#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
подскажите пжл как можно сделать то что я хочу
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)
если я правильно понял, задача звучит так: есть текстовый файл, в котором хранятся имена объектов, по которым надо кликать. Хранятся в текстовом виде.
Вам проще сделать так: считать содержимое файла в массив, а затем для каждого элемента массива делать так
допустим, массив строк называется arrEvaluate (arr[i] + '.Click();')не уверен, но по-моему знак "+" в делфискрипте означает конкатенацию строк.
Основной момент здесь - это использование функции Evaluate, которая позволяет выполнить любой кусок текста, как код скрипта
ОГРОМНОЕ СПАСИБО!!!
РАБОТАЕТ!!!
правда нужно изменить на
Evaluate (arr[i] + '.Click;')
#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;
AssignFile( fff, 'c:\123.txt' );
try
Rewrite(fff);
Write(fff,Sys.Clipboard);
finally
CloseFile( fff );
end;
#47373 Буфер обмена
Отправлено автор: Rumata 05 октября 2007 - 10:04 в SmartBear (AutomatedQA) - Functional Testing
TC 5.12.454.7
Delphiscript
Привет всем!
Подскажите как можно записать в текстовый файл содержимое буфера.
Мне нужно переписать файл.
Delphiscript
Привет всем!
Подскажите как можно записать в текстовый файл содержимое буфера.
Мне нужно переписать файл.
- Форум тестировщиков
- → Публикации Rumata
- Политика Конфиденциальности
- Правила форума ·