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

alex_neon

Регистрация: 27 июл 2010
Offline Активность: 01 авг 2010 13:20
-----

Мои сообщения

В теме: Работа с диалоговыми окнами в Selenium

30 июля 2010 - 10:29

Thread.sleep() -по сути таймаут и выполнится независимо от того появилось окно с "да" "нет". нужно для того, что бы дать возможность этому окну появится, а потом уже selenium.keyPressNative(Integer.toString(KeyEvent.VK_ENTER)) нативно жмёт на Enter(если конечно нужен Enter). только надо убедиться что фокус находится на нужной кнопке


Объясню ситуацию немного подругому, если запустить в дебаггере и поставить breakpoint на команде Thread.sleep(100), которая идет после clcik() то в ДЕБАГГЕ остановится на breakpoint только после того как я нажму мышкой (вручную, принудительно) на да или нет на форме. А пока я мышкой ничего не нажму то Thread.sleep(100) не выполняется, до нее просто не доходит выпонение, пока вручную не закроется диалоговое окошко

В теме: Работа с диалоговыми окнами в Selenium

30 июля 2010 - 07:28

Вы кликаете по урлу на странице, тем самым вызывая открытие окна, в котором надо нажать на кнопку ОК?
Если да, тогда делайте клик по урлу и после него поставьте небольшую задержку (для того чтобы окно догрузилось), например Thread.sleep (если используете java), и далее нажимайте на кнопку в открывшемся окне с помощью нативного метода.


Извините, если я неправильно как то формирую свой вопрос, но попробую еще раз:

я выполняю команду
RenderedWebElement placeBetLink = waitForElement(By.xpath("//input[@value='Bet Now']"), "Can't find place bet button");
placeBetLink.click();

после открывается диалоговое окно (в том же окне браузера - без открытия нового окна браузера) в котором две кнопки "Да" и "Нет"
И все - мы чегото ждем, т.е если я после placeBetLink.click(); расположу команду Thread.sleep(1000); то она выполнится только после нажатия в этом диалоговом окне "Да" или "Нет". Т.е здесь уже похоже на какуюто систему событий и на методы onReturnRequest() или что то типа такого.

В теме: Работа с диалоговыми окнами в Selenium

28 июля 2010 - 08:15

Дело в том, что я не могу понять как мне выполнить например эту команду selenium.keyPressNative(59). Потому что я не могу понять, куда мне ее написать, если я ее вставлю после click() то до нее просто не дойдет выполнение, потому что процесс зависнет на click() ожидая какого то действия....разъясните мне плиз эту ситуацию...я наверное просто не все понимаю и знаю.


Вместо click.
click не увидит данное окно. Вместо нее вы используете нажатие кнопки нативным методом.


но ведь клик я делаю по урлу по сути (<a>) ну или кнопка в форме (<input>)? Или это не играет роли?

В теме: Работа с диалоговыми окнами в Selenium

27 июля 2010 - 14:15

Используй native методы для нажатия на кнопку окошка.
Была похожая ситуация тут:
http://software-test...amp;#entry61703


Дело в том, что я не могу понять как мне выполнить например эту команду selenium.keyPressNative(59). Потому что я не могу понять, куда мне ее написать, если я ее вставлю после click() то до нее просто не дойдет выполнение, потому что процесс зависнет на click() ожидая какого то действия....разъясните мне плиз эту ситуацию...я наверное просто не все понимаю и знаю.

Спасибо!