Взаимодействие TC и Javascript
#1
Отправлено 19 октября 2010 - 09:43
Помогите пожалуйста решить проблему. Проблема следующего плана: На странице присутствует ссылка, при клике на неё открывается новая страница браузера(я использую Fire Fox)в которой отображается картинка, как мне закрыть эту страницу?! Я пробовал использовать "Close", но он закрывает не окно с картинкой а окно на котором находилась ссылка.
Прошу ответить в ближайшее время.
Инструмент: Test Complete 7.20
#2
Отправлено 19 октября 2010 - 12:57
Действительно, надо использовать функцию Close. Но надо закрывать закладку со открытой страницей, а не FireFox
Этот код закрывает закладку, в которой был открыт http://ya.ru/
Sub Test1 Call Sys.Process("firefox").UIPage("chrome://browser/content/browser.xul").TabBand.TabButton("Яндекс").Close End Sub
Для идентификации закладки воспользуйтесь finger'ом.
#3
Отправлено 20 октября 2010 - 08:23
Возможно, открывается не новая страница браузера, а отрисовывается плавающее окошко внутри старой страницы средствами JavaScript. В этом случае надо закрыть такое окошко предусмотренным приложением для этого способом - кликнуть на соответствующую кнопку, нажать Esc и т.п. Проще всего просто записать это действие.
Дмитрий
#4
Отправлено 20 октября 2010 - 09:43
Дмитрий, через запись получается следующий код:Здравствуйте.
Возможно, открывается не новая страница браузера, а отрисовывается плавающее окошко внутри старой страницы средствами JavaScript. В этом случае надо закрыть такое окошко предусмотренным приложением для этого способом - кликнуть на соответствующую кнопку, нажать Esc и т.п. Проще всего просто записать это действие.
function Test1() { Aliases["firefox"]["wndMozillaUIWindowClass"]["Close"](); }Если запустить то закрывается не то что нужно.
#5
Отправлено 20 октября 2010 - 09:49
Дмитрий, через запись получается следующий код:
Здравствуйте.
Возможно, открывается не новая страница браузера, а отрисовывается плавающее окошко внутри старой страницы средствами JavaScript. В этом случае надо закрыть такое окошко предусмотренным приложением для этого способом - кликнуть на соответствующую кнопку, нажать Esc и т.п. Проще всего просто записать это действие.function Test1() { Aliases["firefox"]["wndMozillaUIWindowClass"]["Close"](); }Если запустить то закрывается не то что нужно.
2 Lemur:
Вы указали закрытие основного окна FF.
В своем посте я указал, что при помощи Finger'a надо определить закладку, в которой открыта новая страница, и закрывать именно закладку.
Если я ошибаюсь, пришлите скрин.
#6
Отправлено 20 октября 2010 - 09:50
Спасибо за совет, но там открывается именно новое окошко, а не вкладка. И при просмотре через Object Browser видно страницу на которой как раз и отображается эта картинка.У меня 7,52
Действительно, надо использовать функцию Close. Но надо закрывать закладку со открытой страницей, а не FireFox
Этот код закрывает закладку, в которой был открыт http://ya.ru/Sub Test1 Call Sys.Process("firefox").UIPage("chrome://browser/content/browser.xul").TabBand.TabButton("Яндекс").Close End Sub
Для идентификации закладки воспользуйтесь finger'ом.
#7
Отправлено 20 октября 2010 - 10:00
Дмитрий, через запись получается следующий код:
function Test1() { Aliases["firefox"]["wndMozillaUIWindowClass"]["Close"](); }
Видимо во время записи некорректно мапяться объекты - т.е. мапирование происходит таким образом что оба окна (основное и всплывающие) кажутся TestCompletу одинаковыми...
Предалагаю вам вручную с помощью ObjectBrowser узнать адрес всплывающего окна, будет что то типа -
Sys.Process("firefox").Window("MozillaUIWindowClass", "Lenta.ru: Главное: - Mozilla Firefox", 1)
И вот узнав правильный адрес, именно его и закрывать:
Sys.Process("firefox").Window("MozillaUIWindowClass", "Lenta.ru: Главное: - Mozilla Firefox", 1).Close()
(Про работу с Object Browser можно прочитать введя в helpe "Object Browser panel")
#8
Отправлено 20 октября 2010 - 10:07
Спасибо за совет, но там открывается именно новое окошко, а не вкладка. И при просмотре через Object Browser видно страницу на которой как раз и отображается эта картинка.
У меня 7,52
Действительно, надо использовать функцию Close. Но надо закрывать закладку со открытой страницей, а не FireFox
Этот код закрывает закладку, в которой был открыт http://ya.ru/Sub Test1 Call Sys.Process("firefox").UIPage("chrome://browser/content/browser.xul").TabBand.TabButton("Яндекс").Close End Sub
Для идентификации закладки воспользуйтесь finger'ом.
Тогда все просто.
Открыты два firefox с одним линком http://ya.ru/
В ObjectBrowser присутствуют описатели двух окон.
Sys.Process("firefox").Window("MozillaUIWindowClass", "Яндекс - Mozilla Firefox", 2) Sys.Process("firefox").Window("MozillaUIWindowClass", "Яндекс - Mozilla Firefox", 1)
Для закрытия окон используйте функцию Close
Например:
Set win1 = Sys.Process("firefox").Window("MozillaUIWindowClass", "Яндекс - Mozilla Firefox", 2) call win1.close
Удач !
#9
Отправлено 20 октября 2010 - 10:19
Спасибо за совет, но там открывается именно новое окошко, а не вкладка. И при просмотре через Object Browser видно страницу на которой как раз и отображается эта картинка.
У меня 7,52
Действительно, надо использовать функцию Close. Но надо закрывать закладку со открытой страницей, а не FireFox
Этот код закрывает закладку, в которой был открыт http://ya.ru/Sub Test1 Call Sys.Process("firefox").UIPage("chrome://browser/content/browser.xul").TabBand.TabButton("Яндекс").Close End Sub
Для идентификации закладки воспользуйтесь finger'ом.
Каждое вновь открытое окно браузера будет иметь новый индекс на единицу больше предыдущего:
UIPage("chrome://browser/content/browser.xul") - первое окно
UIPage("chrome://browser/content/browser.xul", 1) - второе
UIPage("chrome://browser/content/browser.xul", 2) - третье
итп
тоесть можно легко найти индекс нужного окна (хотябы посчитав их количество) и закрыть именно его
напр: UIPage("chrome://browser/content/browser.xul", 1).close()
#10
Отправлено 20 октября 2010 - 10:32
#11
Отправлено 20 октября 2010 - 10:52
#12
Отправлено 09 ноября 2010 - 07:58
А можете указать еще способы закрытия такого окошечка? пробовал Esc и запись закрытия, но в первом случае не работает вообще,во втором не корректно.Здравствуйте.
Возможно, открывается не новая страница браузера, а отрисовывается плавающее окошко внутри старой страницы средствами JavaScript. В этом случае надо закрыть такое окошко предусмотренным приложением для этого способом - кликнуть на соответствующую кнопку, нажать Esc и т.п. Проще всего просто записать это действие.
#13
Отправлено 09 ноября 2010 - 07:59
А можете дать безопасную ссылку на Finger ? и объяснить как он поможет?
Дмитрий, через запись получается следующий код:
Здравствуйте.
Возможно, открывается не новая страница браузера, а отрисовывается плавающее окошко внутри старой страницы средствами JavaScript. В этом случае надо закрыть такое окошко предусмотренным приложением для этого способом - кликнуть на соответствующую кнопку, нажать Esc и т.п. Проще всего просто записать это действие.function Test1() { Aliases["firefox"]["wndMozillaUIWindowClass"]["Close"](); }Если запустить то закрывается не то что нужно.
2 Lemur:
Вы указали закрытие основного окна FF.
В своем посте я указал, что при помощи Finger'a надо определить закладку, в которой открыта новая страница, и закрывать именно закладку.
Если я ошибаюсь, пришлите скрин.
#14
Отправлено 22 ноября 2010 - 12:05
Правильно ли я понимаю, что при воспроизведении записанного теста (без изменения его руками), закрывается неправильное окно?
Дмитрий
#15
Отправлено 23 ноября 2010 - 12:59
Да ! Вы совершенно правы.И как вы указывали ранее у меня действительно отрисовывается плавающее окошко внутри старой страницы средствами JavaScript и при записи закрытия этого окошка , закрывается главная страница. При повторном клике на отрисованое окошко происходит увеличение картинки. ESC не работает.(имеется ввиду что при клике на него никакой реакции не происходит). Как его закрыть понятия не имею.Здравствуйте.
Правильно ли я понимаю, что при воспроизведении записанного теста (без изменения его руками), закрывается неправильное окно?
#16
Отправлено 23 ноября 2010 - 19:07
Да ! Вы совершенно правы.И как вы указывали ранее у меня действительно отрисовывается плавающее окошко внутри старой страницы средствами JavaScript и при записи закрытия этого окошка , закрывается главная страница. При повторном клике на отрисованое окошко происходит увеличение картинки. ESC не работает.(имеется ввиду что при клике на него никакой реакции не происходит). Как его закрыть понятия не имею.
Здравствуйте.
Правильно ли я понимаю, что при воспроизведении записанного теста (без изменения его руками), закрывается неправильное окно?
А у этого плавающего окошка есть метод Close ?
#17
Отправлено 24 ноября 2010 - 13:45
Дмитрий
#18
Отправлено 25 ноября 2010 - 08:19
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных