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

Фотография

Не срабатывает подтверждение при удалении.


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

#1 patr14ek

patr14ek

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

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Lizz Stumph
  • Город:localhost


Отправлено 02 сентября 2011 - 12:40

Доброго времени суток!
Заранее говорю,что прочесала весь форум, но мне ничего не помогло.
Проблема заключается в следующем.
Есть кейс для удаления записи: отмечаю галочкой запись, жду Delete, возникает окно с подтверждением, в котором уже выделено Ок, соглашаюсь,запись удаляется.
Однако при написании тестов у меня возникла такая проблема: тест доходит до окошка с подтврждением, а дальше ничего не происходит, ничего не срабатывает,пока я сама не нажму Ok (мышкой или по нажатию Enter).
Указание $this->chooseOkOnNextConfirmation(); перед кликом непосредственно на кнопку Delete не помогает, не срабатывает и $this->keyPressNative("10");
Подскажите, пожалуйста, что я могу делать не так и почему ничего не срабатывает?
Кстати, на всякий случай, окно выглядит так:Прикрепленный файл  Selection_044.png   25,54К   39 Количество загрузок:
  • 0
ЕДРЕНАЯ КОНСОЛЬ ДЕЛАЕТ МЕНЯ СИЛЬНЕЙ!

#2 Freiman

Freiman

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

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

Доброго времени суток!
Заранее говорю,что прочесала весь форум, но мне ничего не помогло.
Проблема заключается в следующем.
Есть кейс для удаления записи: отмечаю галочкой запись, жду Delete, возникает окно с подтверждением, в котором уже выделено Ок, соглашаюсь,запись удаляется.
Однако при написании тестов у меня возникла такая проблема: тест доходит до окошка с подтврждением, а дальше ничего не происходит, ничего не срабатывает,пока я сама не нажму Ok (мышкой или по нажатию Enter).
Указание $this->chooseOkOnNextConfirmation(); перед кликом непосредственно на кнопку Delete не помогает, не срабатывает и $this->keyPressNative("10");
Подскажите, пожалуйста, что я могу делать не так и почему ничего не срабатывает?
Кстати, на всякий случай, окно выглядит так:Прикрепленный файл  Selection_044.png   25,54К   39 Количество загрузок:

Похоже, что это не браузерный confirmation, а созданный средствами HTML, и тут надо использовать не confirmation-методы, а обычный click()
  • 0

#3 Freiman

Freiman

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

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

Случайно сообщение продублировалось

Сообщение отредактировал Freiman: 02 сентября 2011 - 12:57

  • 0

#4 Demetri

Demetri

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

  • Members
  • PipPip
  • 143 сообщений
  • ФИО:Дмитрий
  • Город:Podgorica, MNE


Отправлено 05 сентября 2011 - 08:55

Это обычный javascript confirmation, просто он так в новых версиях Firefox выглядит :)
$this->chooseOkOnNextConfirmation();
$this->click("//element/locator");
$confirm_text = $this->getConfirmation();

  • 0
Hi! I'm a signature virus. Copy me into your signature to help me spread.

#5 patr14ek

patr14ek

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

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Lizz Stumph
  • Город:localhost


Отправлено 06 сентября 2011 - 10:31

Это обычный javascript confirmation, просто он так в новых версиях Firefox выглядит :)

$this->chooseOkOnNextConfirmation();
$this->click("//element/locator");
$confirm_text = $this->getConfirmation();


А как вот мне этот локатор узнать? у меня никак не показывается он нигде.
  • 0
ЕДРЕНАЯ КОНСОЛЬ ДЕЛАЕТ МЕНЯ СИЛЬНЕЙ!

#6 Demetri

Demetri

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

  • Members
  • PipPip
  • 143 сообщений
  • ФИО:Дмитрий
  • Город:Podgorica, MNE


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

...
А как вот мне этот локатор узнать? у меня никак не показывается он нигде.

Это клик по кнопке "Delete", для кнопок в confirm'е ненужны локаторы - их заменяет конструкция:
$this->chooseOkOnNextConfirmation(); // ДО нажатия Delete
$this->click("//xpath/to/delete"); // сам клик на кнопку Delete
$confirm_text = $this->getConfirmation(); // ПОСЛЕ нажатия кнопки Delte - обработка confirm'a
вместо первой строчки можно использовать:
$this->chooseCancelOnNextConfirmation();
тогда в диалоге будет нажата кнопка отмены "Cancel"
  • 0
Hi! I'm a signature virus. Copy me into your signature to help me spread.

#7 patr14ek

patr14ek

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

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Lizz Stumph
  • Город:localhost


Отправлено 08 сентября 2011 - 07:55


...
А как вот мне этот локатор узнать? у меня никак не показывается он нигде.

Это клик по кнопке "Delete", для кнопок в confirm'е ненужны локаторы - их заменяет конструкция:
$this->chooseOkOnNextConfirmation(); // ДО нажатия Delete
$this->click("//xpath/to/delete"); // сам клик на кнопку Delete
$confirm_text = $this->getConfirmation(); // ПОСЛЕ нажатия кнопки Delte - обработка confirm'a
вместо первой строчки можно использовать:
$this->chooseCancelOnNextConfirmation();
тогда в диалоге будет нажата кнопка отмены "Cancel"


Ну я вот так все и делаю, только, когда доходит до того,что надо кликнуть на Ок, ничего не срабатывает и не происходит,пока я сама не кликну на эту кнопку. А когда вот я кликнула, у меня вылетает ошибка: "ERROR: There were no confirmations."
  • 0
ЕДРЕНАЯ КОНСОЛЬ ДЕЛАЕТ МЕНЯ СИЛЬНЕЙ!

#8 Demetri

Demetri

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

  • Members
  • PipPip
  • 143 сообщений
  • ФИО:Дмитрий
  • Город:Podgorica, MNE


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

Тогда показывай код сценария и html-код страницы, на которой кнопка "Delete" находится
  • 0
Hi! I'm a signature virus. Copy me into your signature to help me spread.

#9 patr14ek

patr14ek

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

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Lizz Stumph
  • Город:localhost


Отправлено 13 сентября 2011 - 07:08

Тогда показывай код сценария и html-код страницы, на которой кнопка "Delete" находится


<span>Selected:</span>
<div class="buttons">
<div class="smallBtn" onclick="requests.toMarketplace()">
<div class="smallBtn" onclick="requests.fromMarketplace()">
<div class="smallBtn" onclick="requests.delete('Confirm Delete Requests')">
<div>DELETE</div>
</div>
<div class="smallBtn" onclick="requests.showMovePopup(441)">
<div class="smallBtn" onclick="requests.showMovePopup(441,true)">
</div>

deleteOrders: function () {
if (confirm("Are you sure ot delete this orders?"))
{
var send_data = main_grid.getSelected();
ui.postData('/api/Orders/delete/', {ids:send_data.checked}, function (response) {
if ( response.errors.length) {
// вывести ошибки
$(response.errors).each(function(i, item){
alert(item.errorStrg);
});
}
else {
ui.reloadGridData();
}
});
}
}
Вроде вот.
  • 0
ЕДРЕНАЯ КОНСОЛЬ ДЕЛАЕТ МЕНЯ СИЛЬНЕЙ!

#10 Demetri

Demetri

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

  • Members
  • PipPip
  • 143 сообщений
  • ФИО:Дмитрий
  • Город:Podgorica, MNE


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

попробуй тогда click по кнопке Delete заменить на fireEvent:
$this->fireEvent("//xpath/to/delete/btn","click");

  • 0
Hi! I'm a signature virus. Copy me into your signature to help me spread.

#11 patr14ek

patr14ek

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

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Lizz Stumph
  • Город:localhost


Отправлено 13 сентября 2011 - 12:50

попробуй тогда click по кнопке Delete заменить на fireEvent:

$this->fireEvent("//xpath/to/delete/btn","click");


хм.. все так же не работает =/
$this->click("xpath=//div[@class='checkbox']");
$this->chooseOkOnNextConfirmation();
$this->fireEvent("xpath=//div[@class='smallBtn' and contains( @onclick , 'orders.deleteOrders();')]","click");
$this->getConfirmation();

Однаков, доходит до 4й строчки, жмет на кнопку Delete и все по-пержнему ждет,пока я кликну на кнопку Ок.
  • 0
ЕДРЕНАЯ КОНСОЛЬ ДЕЛАЕТ МЕНЯ СИЛЬНЕЙ!

#12 san4o

san4o

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

  • Members
  • Pip
  • 14 сообщений
  • ФИО:san4o
  • Город:Киев

Отправлено 26 сентября 2011 - 07:18

может поможет ...
я иногда устанавливаю проверки такого типа
if ($this->isAlertPresent()) {
$this->getAlert();
}
или
if ($this->isConfirmationPresent()) {
$this->getConfirmation();
$this->chooseOkOnNextConfirmation();
}

или пользуюсь
* @method array getAllWindowNames()
* @method array getAllWindowTitles()
для того чтобы узнать как селениум роспознал появившееся окно и потом на него переключаюсь ....


P.S. тесты на каком браузере проводите ? у меня были проблемы с 4м фаерфоксом. на 5м некоторые проблемы просто ищезли .....
  • 0

#13 patr14ek

patr14ek

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

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Lizz Stumph
  • Город:localhost


Отправлено 29 сентября 2011 - 07:29

P.S. тесты на каком браузере проводите ? у меня были проблемы с 4м фаерфоксом. на 5м некоторые проблемы просто ищезли .....

FireFox 6.0.2 у меня.
  • 0
ЕДРЕНАЯ КОНСОЛЬ ДЕЛАЕТ МЕНЯ СИЛЬНЕЙ!

#14 patr14ek

patr14ek

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

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Lizz Stumph
  • Город:localhost


Отправлено 29 сентября 2011 - 07:36

Довольно странно, но в тот момент,когда появляется окно с подтверждением, тест как будто останавливается, и пока я не нажму ОК/Cancel у меня не проходит даже print_r($this->getAllWindowTitles());
  • 0
ЕДРЕНАЯ КОНСОЛЬ ДЕЛАЕТ МЕНЯ СИЛЬНЕЙ!

#15 Alex

Alex

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

  • Members
  • PipPipPip
  • 237 сообщений
  • ФИО:Алексей

Отправлено 30 сентября 2011 - 04:46

Довольно странно, но в тот момент,когда появляется окно с подтверждением, тест как будто останавливается, и пока я не нажму ОК/Cancel у меня не проходит даже print_r($this->getAllWindowTitles());


Это потому что клик не считается законченным до тех пор пока не нажать cancel или OK в окне alert (соответственно скрипт ждет пока действие click выполнится). Именно поэтому команды chooseOk(Cancel)OnNextConfirmation вызываются перед кликом. Скорее всего проблема в версии браузера. Попробуйте на какой-нибудь более надежной и известной версии попробовать.
  • 1

#16 Demetri

Demetri

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

  • Members
  • PipPip
  • 143 сообщений
  • ФИО:Дмитрий
  • Город:Podgorica, MNE


Отправлено 30 сентября 2011 - 08:31

...
Скорее всего проблема в версии браузера. Попробуйте на какой-нибудь более надежной и известной версии попробовать.

Кстати, да. Что-то я как-то сразу об этом не подумал. Selenium 1.0 вроде как себя не очень хорошо чувствует с версиями FF старше 3.6.х? Попробуй в версии FF 3.6.x выполнить скрипт
  • 1
Hi! I'm a signature virus. Copy me into your signature to help me spread.

#17 patr14ek

patr14ek

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

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Lizz Stumph
  • Город:localhost


Отправлено 30 сентября 2011 - 08:43


...
Скорее всего проблема в версии браузера. Попробуйте на какой-нибудь более надежной и известной версии попробовать.

Кстати, да. Что-то я как-то сразу об этом не подумал. Selenium 1.0 вроде как себя не очень хорошо чувствует с версиями FF старше 3.6.х? Попробуй в версии FF 3.6.x выполнить скрипт


у меня при запуске 3.6 появляется такая ошибка:

(firefox-bin:12874): Gtk-WARNING **: Failed to load type module: /usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so

/usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so: wrong ELF class: ELFCLASS64

С чем это может быть связано?
  • 0
ЕДРЕНАЯ КОНСОЛЬ ДЕЛАЕТ МЕНЯ СИЛЬНЕЙ!

#18 patr14ek

patr14ek

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

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Lizz Stumph
  • Город:localhost


Отправлено 04 октября 2011 - 05:54

В связке Firefox 3.6 + Selenium-standalone-2.3 все прекрасно заработало. Всем огромное спасибо.
  • 0
ЕДРЕНАЯ КОНСОЛЬ ДЕЛАЕТ МЕНЯ СИЛЬНЕЙ!


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

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