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

Фотография

waitForPageToLoad


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

#1 joika

joika

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

  • Members
  • Pip
  • 72 сообщений

Отправлено 21 февраля 2010 - 10:48

$this->open("/test.php");
$this->waitForPageToLoad("80000")
при условии что страница test.php открывается очень долго выставил таймаут 80 сек, однако по истечении 30ти секунд скрипт останавливается с сообщением Got result: Timed out after 30000ms
как обработать такую ситуцацию?
  • 0

#2 KaNoN

KaNoN

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

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

Отправлено 22 февраля 2010 - 09:52

$this->open("/test.php");
$this->waitForPageToLoad("80000")
при условии что страница test.php открывается очень долго выставил таймаут 80 сек, однако по истечении 30ти секунд скрипт останавливается с сообщением Got result: Timed out after 30000ms
как обработать такую ситуцацию?

А без waitForPageToLoad пробовали? Насколько я помню, метод open как раз завершает свое выполнение, когда страница загрузилась. Соответственно, waitForPageToLoad уже вылетает по таймауту
  • 0

#3 joika

joika

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

  • Members
  • Pip
  • 72 сообщений

Отправлено 22 февраля 2010 - 13:06

без также пишет таймаут после 30 секунд
ставлю sleep
всё равно...
  • 0

#4 KaNoN

KaNoN

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

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

Отправлено 22 февраля 2010 - 15:02

без также пишет таймаут после 30 секунд
ставлю sleep
всё равно...

А там случайно никакого диалога не появляется или, там, статус загрузки висит (могут быть различные JS-errors). По описанию похоже, что зависание происходит на open или эта команда не успевает отработать за 30 секунд
  • 0

#5 joika

joika

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

  • Members
  • Pip
  • 72 сообщений

Отправлено 22 февраля 2010 - 17:49

ну как бы там именно висит загрузка страницы, а страница подразумевает под собой именно долгое открытие
js-ошибки..врядли там просто текстовая инфа
  • 0

#6 KaNoN

KaNoN

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

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

Отправлено 23 февраля 2010 - 10:38

ну как бы там именно висит загрузка страницы, а страница подразумевает под собой именно долгое открытие
js-ошибки..врядли там просто текстовая инфа

Тогда увеличьте максимальное ожидаемое время выполнения команд селениума. для этого есть метод setTimeout.
Скорее всего проблема как раз в том, что страница грузится долго и команда open не успевает полностью отработать
  • 0

#7 joika

joika

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

  • Members
  • Pip
  • 72 сообщений

Отправлено 23 февраля 2010 - 15:39

ну как бы там именно висит загрузка страницы, а страница подразумевает под собой именно долгое открытие
js-ошибки..врядли там просто текстовая инфа

Тогда увеличьте максимальное ожидаемое время выполнения команд селениума. для этого есть метод setTimeout.
Скорее всего проблема как раз в том, что страница грузится долго и команда open не успевает полностью отработать

подскажите пожалуйста где именно это делается
  • 0

#8 joika

joika

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

  • Members
  • Pip
  • 72 сообщений

Отправлено 23 февраля 2010 - 17:06

нашел спасибо
  • 0

#9 kylie

kylie

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

  • Members
  • Pip
  • 28 сообщений

Отправлено 22 ноября 2010 - 14:00

Здраствуйте!
Такая вот беда: в системе доступна генерация отчётов, тоесть кликаем по кнопке Export, затем появляется окошко на сохранение файлов... Так вот после нажатия кнопки идёт selenium.waitForPageToLoad(WAIT_PAGE_TO_LOAD.toString()), в переменной 50 секунд, но вместо того чтоб нативными методами нажать OK в появившимсе окошке, ждёт до конца 50 секунд а потом выдает ошибку Timed out after 50000ms... Как сделать так чтоб система не ждала конца waitForPageToLoad?

selenium.click("org.apache.struts.taglib.html.SUBMIT");
selenium.waitForPageToLoad(WAIT_PAGE_TO_LOAD.toString());

if (selenium.isTextPresent("OK")) {

selenium.getEval("selenium.browserbot.getCurrentWindow().focus();");
selenium.selectWindow("");
selenium.keyPressNative("40");

selenium.selectWindow("");
selenium.keyPressNative("10");

selenium.selectWindow("");
selenium.waitForPageToLoad(""); }
  • 0

#10 mcreature

mcreature

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

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

Отправлено 22 ноября 2010 - 14:32

Если я не ошибаюсь, waitForPageToLoad тут вообще не нужен. Загрузки какого окна вы ждете этой командой? Основная ваша страница перегружается после нажатия на ОК?
  • 0

#11 kylie

kylie

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

  • Members
  • Pip
  • 28 сообщений

Отправлено 22 ноября 2010 - 14:43

Если я не ошибаюсь, waitForPageToLoad тут вообще не нужен. Загрузки какого окна вы ждете этой командой? Основная ваша страница перегружается после нажатия на ОК?


Там идёт загрузка данных для отчёта (их многовато), вот если не поставить вообще waitForPageToLoad то естественно ничего не произойдет - тест обвалится, даже не дойдя до окна с ОК!!! После ОК, идёт загрузка файла, а на странице ничего не перегружается.
  • 0

#12 mcreature

mcreature

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

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

Отправлено 22 ноября 2010 - 14:51

А, все, понял =)
Код кривовато прочитал.

Ну так waitForPageToLoad не будет ждать загрузки диалога этого, т.к. он не браузерный.
Я бы здесь использовал возможности вашего языка программирования и поставил бы обычную "паузу" как, например Thread.sleep() в java.
  • 0

#13 frei_by

frei_by

    Постоянный участник

  • Members
  • PipPipPip
  • 177 сообщений
  • ФИО:Дмитрий

Отправлено 22 ноября 2010 - 15:06

Броузерные диалоги is windows based component и не могут быть отловлены из JavaScript песочницы. С подобными штуками справляются инструменты НЕ уровня JS движка броузера (=selenium) а уровня ОС (=silktest которым можно даже системный реестр править) или TC или QTP.
гугль посоветовал это:
http://www.jsystemtest.org/?q=node/70
-этим не пользовался

http://wiki.openqa.o...Idownloadafile?
-скачать без диалогового окна.

ну или только разве $this->keyPressNative(); может сработать.
Мне кажется так..
  • 0

#14 mcreature

mcreature

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

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

Отправлено 22 ноября 2010 - 15:10

Так kylie и использует keyPressNative, только не может дождаться его появления.

А по поводу галки "скачать без диалогового окна" - это верно, у самого так сделано.
Только там все равно надо ставить паузу, т.к. надо ждать пока скачается, а waitForPageToLoad тут не помошник.
  • 0

#15 kylie

kylie

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

  • Members
  • Pip
  • 28 сообщений

Отправлено 22 ноября 2010 - 15:47

Я всё таки нашла решение проблеммы и в селениуме, хоть оно и не очень удобное :sorry: ... Если не ставить waitForPageToLoad, а поставить setSpeed("15000") ещё до клика, всё проходит правда приходится немножко подождать... Спасибо за внимание))))
  • 0


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

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