Функция GetMultiText
#1
Отправлено 14 июля 2006 - 12:47
Мне нужно взять значение HtmlTextField и я использую функцию GetMultiText. Но она только возвращает пустые строчки в количестве, которые существуют в реальном HtmlTextField, но в последнем не все строчки пустые. Помогите мне в этом разобратся. Спасибо заранее.
#2
Отправлено 14 июля 2006 - 20:03
Может проблема как-то связана в выделенным.Although HtmlTextField inherits methods from the TextField class, HtmlTextField does not support the method SetSelRange.
HtmlTextField is limited to 255 characters for both DOM and VO.
Также попробуй текст извлечь через lsValue. Может это поможет
#3
Отправлено 17 июля 2006 - 10:40
Я попробывал lsValue. Оно возвращает точно такой же результат.
Я немного поэксперементировал с HtmlTextField.GetMultiText(). Похоже она работает нормльно до тех пор, пока в HtmlTextField не появляется пустая строчка. После этого HtmlTextField выдает неправильное значение.
Как решение можно использовать копирование всего текста в буфер обмена. Кучеряво, но работает
#4
Отправлено 17 июля 2006 - 11:06
А Clipboard действительно рулит
#5
Отправлено 17 июля 2006 - 11:37
#6
Отправлено 18 июля 2006 - 09:06
удобно использовать в качестве обходного пути при извлечении текста
из нестандартных объектов. Например, нужные расширения не подключены, а выделить текст и нажать Ctrl-c можно даже на CustomWin-е. Но как правило, лучше искать стандартные решения данных проблем
#7
Отправлено 18 августа 2006 - 09:46
это связано с тем, что SilkTest неправильно работает с атрибутами хтмля (в частности value). Пока что для более надежной работы используется внедрение javascript кода средствами SilkTest-a. Потому что например у hidden-а финт с буфером обмена не получится ...Спасибо за ответ.
Я попробывал lsValue. Оно возвращает точно такой же результат.
Я немного поэксперементировал с HtmlTextField.GetMultiText(). Похоже она работает нормльно до тех пор, пока в HtmlTextField не появляется пустая строчка. После этого HtmlTextField выдает неправильное значение.
Как решение можно использовать копирование всего текста в буфер обмена. Кучеряво, но работает
#8
Отправлено 21 августа 2006 - 10:07
Заранее благодарен.внедрение javascript кода средствами SilkTest-a
#9
Отправлено 21 августа 2006 - 14:51
<html> <body> test: <textarea id="num_text" cols="20" rows="6" style="font-family:Courier; font-size:10"> ;;13 52 08 46 65 a<br> 41 17 11 04 16 : 50 15 51 07 04 @$%^& 14 65 16 04 11 ? 19 65 50 08 14 : </textarea> </body> </html>пишем код :
[-] window BrowserChild wTest [ ] tag "*test.html - Microsoft Internet Explorer" [ ] parent Browser [-] HtmlTextField edtTest [-] multitag "test:" [ ] "#1" [ ] [-] main() [-] LIST OF STRING ls = <text> [ ] function getValById(sId) { [ ] var eElem = document.getElementById(sId); [ ] if (eElem){ [ ] return eElem.value; [ ] }else{ [ ] return ""; [ ] } [ ] } [ ] [ ] wTest.ExecScript (ls) [ ] Print (wTest.ExecFunction ("getValById", {"num_text"})) [ ] STRING s [-] for each s in wTest.edtTest.GetMultiText () [ ] Print ("""{s}""")и смотрим:
джаваскрипт выдал строку:
[ ];;13 52 08 46 65 a<br> [ ] 41 17 11 04 16 : [ ] 50 15 51 07 04 @$%^& [ ] 14 65 16 04 11 ? [ ] 19 65 50 08 14 :а это список строк из GetMultiText
[ ] ";;13 52 08 46 65 " [ ] "a<br>" [ ] "41 17 11 04 16 :" [ ] "50 15 51 07 04 @$%^&" [ ] "14 65 16 04 11 ?" [ ] "19 65 50 08 14 : "
#10
Отправлено 21 августа 2006 - 17:44
Спасибо за екземпляр - уверен, что пригодится... мож еще и вопросы возникнут
#11
Отправлено 07 сентября 2006 - 14:02
Но появилась проблема с ExecFunction передача 2 параметров не получается.
Можно запустить функцию через ExecLine, но ExecLine не возвращает значение для проверки результата.
Документации по этому поводу в силк хелпе 0. Можешь подскажешь формат передачи нескольких параметров?
Заранее благодарен.
#12
Отправлено 13 сентября 2006 - 13:04
ОКНО_НТМЛ_КОНТРОЛА.ExecFunction ("ИМЯ_Ф-ЦИИ", {"ПАРАМЕТР1","ПАРАМЕТР 2"})
#13
Отправлено 13 сентября 2006 - 17:34
Я так тоже думал... но почемуто оно так не работает.
В этом случае первый и второй параметр стают нулями
[ ] function setValById(sId, sVal) { [ ] alert(sId); [ ] alert(sVal); [ ]} Силк вызов: ОКНО.ExecFunction ("setValById", {"Id","Val"}))
Может это глюк версии 6.5? Ты пробовал так передавать, у тебя получилось?
И еще один глюк (менее критичный), у меня не получается при помощи ExecScript загнать сразу две функции... по отдельности загоняются нормально, а сразу две - генерит ошибку.
Есть какие-то идеи?
#14
Отправлено 15 сентября 2006 - 11:42
На самом деле - все эти передачи параметров - это профанация, никто не мешает тебе написать функцию, в которой не будет никаких параметров, а будет простая инициализация, типа:
function some_wrapper(){ var param1 = value1; var param2 = value2; .... }и просто вызвать ее
пришли пример - что там за две функции, может там все в одной можно сделать :)
#15
Отправлено 15 сентября 2006 - 16:13
[-] LIST OF STRING twoval = <text> [ ] function set2param(sPar1, sPar2) { [ ] alert(sPar1); [ ] alert(sPar2); [ ] if ((sPar1 == 0)&&(sPar2 == 0)){ [ ] return false; [ ] } [ ] else { [ ] return true; [ ] } [ ] } [ ] [ ] BrowserPage.ExecScript(twoval) [ ] Print (BrowserPage.ExecFunction ("set2param", {"par1", "par2"}))
Функция не устанавливает 2 параметра. Возвращает два нуля.
Немного покрутив, я сделал следующий вариант:
[+] LIST OF STRING twoval = <text> [ ] var sPar1; [ ] var sPar2; [ ] function set2param() { [ ] alert(sPar1); [ ] alert(sPar2); [ ] if ((sPar1 == 0)&&(sPar2 == 0)){ [ ] return false; [ ] } [ ] else { [ ] return true; [ ] } [ ] } [ ] [ ] BrowserPage.ExecScript(twoval) [ ] BrowserPage.ExecScript({'sPar1="txtUser"; sPar2="User";'}) [ ] Print (BrowserPage.ExecFunction ("set2param", {}))Не совсем параметры, а глобальные переменные... но вроде работает.
#16
Отправлено 30 ноября 2007 - 10:25
*** Error: Window '[HtmlTextField]#7' is not enabled
Хоть визически этом поле только для просмотра, но мне нужно вытащить из него значение.
Пробовал методы: SetSelRange, GetMultiText, GetText. результат один.
#17
Отправлено 30 ноября 2007 - 10:30
Options - Agent - Verification - Verify that windows are enabled
TestComplete для начинающих (видеозаписи курса)
Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)
Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest
#18
Отправлено 30 ноября 2007 - 10:43
попробуйте отключить галочку
Options - Agent - Verification - Verify that windows are enabled
Сенкс, теперь работает!
#19
Отправлено 30 ноября 2007 - 11:34
Также можно порекомендовать снять флажки с опцийпопробуйте отключить галочку
Options - Agent - Verification - Verify that windows are enabled
Сенкс, теперь работает!
Options - Agent - Verification - Verify that windows are active
Options - Agent - Verification - Verify that windows are exposed
Options - Agent - Verification - Verify that a tag uniquely identifies window
Позволит избежать многих мелких проблем сродни этой
#20
Отправлено 30 ноября 2007 - 12:06
Последую вашему совету. :)Также можно порекомендовать снять флажки с опций
Options - Agent - Verification - Verify that windows are active
Options - Agent - Verification - Verify that windows are exposed
Options - Agent - Verification - Verify that a tag uniquely identifies window
Позволит избежать многих мелких проблем сродни этой
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных