Добрый день!
У меня акая проблема: Как поставить фокус обратно на тестируемое окно, если он слетел?
пробовала $this->selenium->selectWindow("selenium_main_app_window"); ("selenium_main_app_window" - единственное окно из getAllWindowNames)
не получается
![Фотография](https://secure.gravatar.com/avatar/ccdc7478cabe643d2d9ac689e831e95e?s=100&d=https%3A%2F%2Fsoftware-testing.ru%2Fforum%2Fpublic%2Fstyle_images%2Fmaster%2Fprofile%2Fdefault_large.png)
поймать главное окно
Автор NIgh-Cat, 27 мая 2011 14:29
Сообщений в теме: 6
#1
Отправлено 27 мая 2011 - 14:29
#2
Отправлено 27 мая 2011 - 15:19
selectWindow(null)
#3
Отправлено 31 мая 2011 - 07:08
вот такая конструкция возвращает false
$this->assertTrue($this->selenium->selectWindow(null));
соответственно не ставится фокус(
$this->assertTrue($this->selenium->selectWindow(null));
соответственно не ставится фокус(
#4
Отправлено 31 мая 2011 - 07:12
Вообще-то selectWindow void, т.е. ничего не возвращает. Вам нужен фокус или всё-таки выбор окна которое будет текущим?
#5
Отправлено 31 мая 2011 - 07:21
У меня сценарий вводит в поле данные, нажимает пробел и при этом активизируется кнопка на которую далее жмет.
Однако, если во время выполнения скрипта ( заполнения поля данными) я щелкну, например на рабочий стол, кнопка не активизируется.
Сделала проверку:
do
{
$this->selenium->selectWindow(null)
$this->selenium->Focus($this->DataFrame);
$this->selenium->click($this->DataFrame);
}while ($this->selenium->isEditable($this->okPhoneLocator) == false);
То есть если кнопка не активизировалась - кликнуть на рабочую область. Если делать ручками все работает, однако скрипт - нет, бесконечно крутит цикл и все.
Я думала, что проблема в том, что скрипт теряет фокус главного окна
Однако, если во время выполнения скрипта ( заполнения поля данными) я щелкну, например на рабочий стол, кнопка не активизируется.
Сделала проверку:
do
{
$this->selenium->selectWindow(null)
$this->selenium->Focus($this->DataFrame);
$this->selenium->click($this->DataFrame);
}while ($this->selenium->isEditable($this->okPhoneLocator) == false);
То есть если кнопка не активизировалась - кликнуть на рабочую область. Если делать ручками все работает, однако скрипт - нет, бесконечно крутит цикл и все.
Я думала, что проблема в том, что скрипт теряет фокус главного окна
#6
Отправлено 31 мая 2011 - 08:13
Встречался с таким поведением JQuery, зачем-то там была проверка фокуса :) А если пока крутится ваш цикл вы руками щёлкните на окно FF, то из цикла выходит? Я бы нашёл где там проверяется фокус, дал бы разработчикам по рукам, удалили бы кривой код и навсегда забыли бы о проблеме. Поэкспериментируйте, попробуйте вернуть фокус через JS, нативные методы... Вообще винда не даёт приложениям переключать на себя фокус когда вздумается.
#7
Отправлено 31 мая 2011 - 11:07
Да, действительно, если кликнуть на окно, из цикла выходит.
Разработчикам, к сожалению, нет шанса дать по ушам(
Я правильно понимаю, надо двигаться в сторону $this->selenium->getEval() и выполнять в нем js-инструкцию?
selenium.browserbot.getUserWindow().focus() не сработала(
Up.
Проблему решила!
Если в цикле будет:
$this->selenium->getEval( "selenium.browserbot.getCurrentWindow().focus()");
А затем клик на любой элемент формы на которой находится кнопка!
Спасибо за советы!
Разработчикам, к сожалению, нет шанса дать по ушам(
Я правильно понимаю, надо двигаться в сторону $this->selenium->getEval() и выполнять в нем js-инструкцию?
selenium.browserbot.getUserWindow().focus() не сработала(
Up.
Проблему решила!
Если в цикле будет:
$this->selenium->getEval( "selenium.browserbot.getCurrentWindow().focus()");
А затем клик на любой элемент формы на которой находится кнопка!
Спасибо за советы!
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных