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

Фотография

Как обойти окно на подтверждение отправки данных в firefox


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

#1 Rinss

Rinss

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

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

Отправлено 15 ноября 2011 - 09:42

Подскажите, как можно обойти это окошко(запрос на подтверждение отправки введенных ранее данных), то, что выдает, если обновить страницу при введенных в поля форм данных. пробовал selenium.chose_ok_on_next_confirmation, не помогает. самое интересное, что окно появляется после того как я кликаю по ссылке на другую страницу selenium.click(//*[@id='functions']/tr[5]/td[4]/nobr[1]/a), а потом, после перехода на след страницу делаю selenium.go_back.
  • 0

#2 vitorg

vitorg

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

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 15 ноября 2011 - 11:08

У нас примерно так работает:
final Thread refreshingThread = new Thread("Refreshing thread") {
                        @Override
                        public void run() {
                            selenium.refresh();
                        }
                    };
                    refreshingThread.start();

                    // Pressing enter and waiting for refreshing thread to die.
                    final long startTime = System.currentTimeMillis();
                    while (refreshingThread.isAlive()) {
                        if ((System.currentTimeMillis() - startTime) / 1000 < MAX_WAIT_FOR_REFRESH_SECONDS) {
                            selenium.keyPressNative(String.valueOf(KeyEvent.VK_ENTER));
                        } else {
                            throw new RuntimeException("Refreshing thread doesn't died in " + MAX_WAIT_FOR_REFRESH_SECONDS + " seconds!");
                        }
                        Thread.yield();
                    }

                    selenium.waitForPageToLoad();
Но у нас там очень специфический случай в одном месте, поэтому используем такой трюк, вы уверены, что вам надо делать Back на страницу, полученную методом POST?
  • 0

#3 Rinss

Rinss

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

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

Отправлено 15 ноября 2011 - 11:45

back нужно делать для того, чтобы проверить работоспособность оставшихся на страниче линков
  • 0

#4 vitorg

vitorg

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

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 15 ноября 2011 - 12:09

Можно открывать ссылки в новом окне, например, и каждый раз возвращаться к предыдущему без использования Back. Или для более чистой проверки открыть исходную страницу во вкладках столько раз сколько на ней ссылок, а потом нажать на каждую ссылку. В общем способов много разных, выбор конкретного зависит от ситуации, в любом случае использовать приведённый вариант рекомендую только в самом крайнем случае.
  • 0

#5 Rinss

Rinss

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

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

Отправлено 15 ноября 2011 - 12:21

оо, а как селениуму обьснять, что страничку надо открыть в новой вкладке?
  • 0

#6 vitorg

vitorg

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

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 15 ноября 2011 - 12:56

Это можно объяснить браузеру, например, во все ссылки добавить атрибут target="randomID", потом открывать окна с этими randomID и кликать ссылки, но это может быть не очень правильно в некоторых случаях. Можно также попробовать кликать средней кнопкой по ссылкам, что скорее всего не получится :)
  • 0

#7 Rinss

Rinss

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

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

Отправлено 15 ноября 2011 - 13:31

мдемс, firefox меня разочаровал, странно, что там нельзя отключить это окно.
  • 0

#8 vitorg

vitorg

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

  • Members
  • PipPipPipPip
  • 408 сообщений

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

Да, много споров об этом окошке было, но опции отключения так и не появилось.
  • 0

#9 Rinss

Rinss

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

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

Отправлено 15 ноября 2011 - 14:34

кстати, у меня sel.key_press_native("10") - по идеи должен нажимать ентер, но не нажимает
  • 0

#10 vitorg

vitorg

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

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 15 ноября 2011 - 14:46

Фокус не там, там, но не тогда, тогда, но не... и т.д.
  • 0

#11 Rinss

Rinss

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

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

Отправлено 15 ноября 2011 - 14:55

кстати, а как искать id окон?
  • 0

#12 vitorg

vitorg

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

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 15 ноября 2011 - 14:58

В каком смысле "искать"? DefaultSelenium#getAllWindowIds?
  • 0

#13 Rinss

Rinss

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

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

Отправлено 15 ноября 2011 - 14:59

просто не знаю как выставить фокус на окошко с подтверждением
  • 0

#14 vitorg

vitorg

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

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 15 ноября 2011 - 15:03

По идее он там по умолчанию уже должен быть если ничего не делать / никуда не щёлкать.
  • 0

#15 Rinss

Rinss

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

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

Отправлено 15 ноября 2011 - 15:17

тогда ентер все равно не жмется(((
  • 0


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

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