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

Фотография

Функция GetMultiText


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 22

#1 VegaX

VegaX

    Активный участник

  • Members
  • PipPip
  • 85 сообщений

Отправлено 14 июля 2006 - 12:47

Привет всем!

Мне нужно взять значение HtmlTextField и я использую функцию GetMultiText. Но она только возвращает пустые строчки в количестве, которые существуют в реальном HtmlTextField, но в последнем не все строчки пустые. Помогите мне в этом разобратся. Спасибо заранее.
  • 0

#2 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 14 июля 2006 - 20:03

Вообще, это странно. В хэлпе из особенностей HtmlTextField указано только

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. Может это поможет
  • 0

#3 VegaX

VegaX

    Активный участник

  • Members
  • PipPip
  • 85 сообщений

Отправлено 17 июля 2006 - 10:40

Спасибо за ответ.
Я попробывал lsValue. Оно возвращает точно такой же результат.
Я немного поэксперементировал с HtmlTextField.GetMultiText(). Похоже она работает нормльно до тех пор, пока в HtmlTextField не появляется пустая строчка. После этого HtmlTextField выдает неправильное значение.
Как решение можно использовать копирование всего текста в буфер обмена. Кучеряво, но работает :clapping:
  • 0

#4 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 17 июля 2006 - 11:06

Похоже очередная бага СилкТеста. Интересно даже.

А Clipboard действительно рулит :clapping:
  • 0

#5 VegaX

VegaX

    Активный участник

  • Members
  • PipPip
  • 85 сообщений

Отправлено 17 июля 2006 - 11:37

Не проверял все возможности с Clipboard. Но в моем варианте вроде вернуло нормально все строчки. Надежность время покажет :clapping:
  • 0

#6 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 18 июля 2006 - 09:06

Clipboard позволяет извлечь текст в таком виде, в котором он хранится в буфере обмена. И все. Ничего хитрого нет. Как правило данный объект
удобно использовать в качестве обходного пути при извлечении текста
из нестандартных объектов. Например, нужные расширения не подключены, а выделить текст и нажать Ctrl-c можно даже на CustomWin-е. Но как правило, лучше искать стандартные решения данных проблем
  • 0

#7 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 18 августа 2006 - 09:46

Спасибо за ответ.
Я попробывал lsValue. Оно возвращает точно такой же результат.
Я немного поэксперементировал с HtmlTextField.GetMultiText(). Похоже она работает нормльно до тех пор, пока в HtmlTextField не появляется пустая строчка. После этого HtmlTextField выдает неправильное значение.
Как решение можно использовать копирование всего текста в буфер обмена. Кучеряво, но работает  :acute:

Просмотр сообщения

это связано с тем, что SilkTest неправильно работает с атрибутами хтмля (в частности value). Пока что для более надежной работы используется внедрение javascript кода средствами SilkTest-a. Потому что например у hidden-а финт с буфером обмена не получится ...
  • 0

#8 VegaX

VegaX

    Активный участник

  • Members
  • PipPip
  • 85 сообщений

Отправлено 21 августа 2006 - 10:07

vass, а можно более подробенее, а еще лучше пример кода как использовать

внедрение javascript кода средствами SilkTest-a

Заранее благодарен.
  • 0

#9 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 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 : "

  • 0

#10 VegaX

VegaX

    Активный участник

  • Members
  • PipPip
  • 85 сообщений

Отправлено 21 августа 2006 - 17:44

Появется немного времени, попробую провести у себя тест :good:
Спасибо за екземпляр - уверен, что пригодится... мож еще и вопросы возникнут :clapping:
  • 0

#11 VegaX

VegaX

    Активный участник

  • Members
  • PipPip
  • 85 сообщений

Отправлено 07 сентября 2006 - 14:02

Попробовал немного пописать скрипты на джаве. Работаю прекрасно - быстрее чем на Силке :shok:
Но появилась проблема с ExecFunction передача 2 параметров не получается.
Можно запустить функцию через ExecLine, но ExecLine не возвращает значение для проверки результата.
Документации по этому поводу в силк хелпе 0. Можешь подскажешь формат передачи нескольких параметров?

Заранее благодарен.
  • 0

#12 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 13 сентября 2006 - 13:04

ИМХО, это элементарно:
ОКНО_НТМЛ_КОНТРОЛА.ExecFunction ("ИМЯ_Ф-ЦИИ", {"ПАРАМЕТР1","ПАРАМЕТР 2"})
  • 0

#13 VegaX

VegaX

    Активный участник

  • Members
  • PipPip
  • 85 сообщений

Отправлено 13 сентября 2006 - 17:34

Спасибо за ответ.

Я так тоже думал... но почемуто оно так не работает.
В этом случае первый и второй параметр стают нулями :clapping:
 [ ] function setValById(sId, sVal) {
  [ ] alert(sId);
  [ ] alert(sVal);
  [ ]}

Силк вызов:
ОКНО.ExecFunction ("setValById", {"Id","Val"}))

Может это глюк версии 6.5? Ты пробовал так передавать, у тебя получилось?

И еще один глюк (менее критичный), у меня не получается при помощи ExecScript загнать сразу две функции... по отдельности загоняются нормально, а сразу две - генерит ошибку.

Есть какие-то идеи?
  • 0

#14 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 15 сентября 2006 - 11:42

SilkTest 7.1/7.5 - все нормально ...
На самом деле - все эти передачи параметров - это профанация, никто не мешает тебе написать функцию, в которой не будет никаких параметров, а будет простая инициализация, типа:
function some_wrapper(){
 var param1 = value1;
 var param2 = value2;
 .... 
}
и просто вызвать ее :hi:

пришли пример - что там за две функции, может там все в одной можно сделать :)
  • 0

#15 VegaX

VegaX

    Активный участник

  • Members
  • PipPip
  • 85 сообщений

Отправлено 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", {}))
Не совсем параметры, а глобальные переменные... но вроде работает.
  • 0

#16 Al*GatoR

Al*GatoR

    Новый участник

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Александр К
  • Город:г.Киев

Отправлено 30 ноября 2007 - 10:25

Подскажите пожалуйста, что нужно сделать если при любом обращении к HtmlTextField выдает ошибку вида:

*** Error: Window '[HtmlTextField]#7' is not enabled

Хоть визически этом поле только для просмотра, но мне нужно вытащить из него значение.
Пробовал методы: SetSelRange, GetMultiText, GetText. результат один.
  • 0

#17 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 30 ноября 2007 - 10:30

попробуйте отключить галочку
Options - Agent - Verification - Verify that windows are enabled
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#18 Al*GatoR

Al*GatoR

    Новый участник

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Александр К
  • Город:г.Киев

Отправлено 30 ноября 2007 - 10:43

попробуйте отключить галочку
Options - Agent - Verification - Verify that windows are enabled


:clapping: Сенкс, теперь работает!
  • 0

#19 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 30 ноября 2007 - 11:34

попробуйте отключить галочку
Options - Agent - Verification - Verify that windows are enabled


:clapping: Сенкс, теперь работает!

Также можно порекомендовать снять флажки с опций
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

Позволит избежать многих мелких проблем сродни этой
  • 0

#20 Al*GatoR

Al*GatoR

    Новый участник

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Александр К
  • Город:г.Киев

Отправлено 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

Позволит избежать многих мелких проблем сродни этой

Последую вашему совету. :)
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных