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

Фотография

Selenium RC + FireFox3 : Проблема с PopUp


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

#1 Vitmat

Vitmat

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Матыцин Виталий Викторович

Отправлено 11 февраля 2009 - 15:24

Здраствуйте.

Суть проблемы:
При выполнении
selenium.click("link=Delete");
появляется пустое окно.
Сама ссылка -
<a href="java script:Delete('&Address_AddressID=141')">Delete</a>
Функция Delete -
function Delete(KeyValue)
{
	var Key2 = '';
	if (document.inputForm.SortColumn && document.inputForm.SortDirection)
	{
	  Key2 = '&SortColumn=' + document.inputForm.SortColumn.value;
	  Key2 += '&SortDirection=' + document.inputForm.SortDirection.value;
	}
	 
  document.inputForm.action = "адрес страницы" + KeyValue + Key2;  
  document.inputForm.target = "_self";  
	 
  var sWidth  = 300;  
  var sHeight = 125;  
  var left = (screen.width - sWidth) / 2;	
  var top  = (screen.height - sHeight) / 2;  
  sAttr = "width=" + sWidth + ",height=" + sHeight + ",top=" + top + ",left=" + left + ",resizable=no,titlebar=no";  
  var popupWindow = window.open ( "" , "" , sAttr);  
  popupWindow.document.open();   
  popupWindow.document.write('<html><head><title>Close</title><style type="text/css">BODY{FONT-SIZE: 8pt}FONT.Message{FONT-SIZE: 8pt; COLOR: #000000; TEXT-DECORATION: none}.Window{BACKGROUND-COLOR: #CCCCCC}</style><meta http-equiv="Content-Type" content=text/html; charset="UTF-8"></head><body class="Window" onblur="window.focus()" onload="window.focus()"><p><font class="Message" face="Verdana, Arial, Helvetica, sans-serif">Are you sure you want to delete this item?</font></p><form method="post" target="_self"><p><center><br><input type=button value="   OK   "onclick="window.opener.document.forms[0].submit();window.close();">   <input type=button value=" Cancel " onclick="window.close();"></center><p></form></body></html>');  
  popupWindow.document.write("  ");  
  popupWindow.document.close();  
}
При нажатии selenium на ссылку появляется пустой PopUp.
В Selenium Log Console
# info(1234363091232): Executing: |click | link=Delete | |
# warn(1234363091271): Opening window '_blank', which is not a real window name. Randomizing target to be: selenium_blank85764

На Фаерфоксе стоит Фаербаг. У него в консоли появляютсядве такие ошибки.
Permission denied to get property Window.document
[Break on this error] popupWindow.document.open();
[Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIWebNavigation.sessionHistory]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://global/content/bindings/browser.xml :: :: line 644" data: no]
[Break on this error] null

При выполнении этого же теста в IE6 всё выполняется номально.
После выполнения этого же действия после обновления страницы вручную всё открывается корректно.
Selenium IDE также не вызывает проблем.

P. S. Не знаю, относится ли к делу, ссылка является частью одного из нескольких фреймов на странице.
  • 0

#2 KaNoN

KaNoN

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

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

Отправлено 12 февраля 2009 - 09:05

Как обходной вариант, попробуйте открыть этот Popup через openWindow команду. Только там надо будет задать точный URL страницы.
  • 0

#3 Vitmat

Vitmat

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Матыцин Виталий Викторович

Отправлено 13 февраля 2009 - 15:49

Для этого как минимум нужно считать айдишник для ссылки со страницы, ссылки динамические. Как можно считать со страницы с помошью селениума?
  • 0

#4 KaNoN

KaNoN

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

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

Отправлено 13 февраля 2009 - 16:51

Для этого как минимум нужно считать айдишник для ссылки со страницы, ссылки динамические. Как можно считать со страницы с помошью селениума?

Например, у ссылки можно взять атрибут href и потом уже распарсить его, выкусив нужную часть. Я это через XPath делал. Выглядит это примерно так:

String href = selenium.getAttribute( "//a[text()='Delete']@href" );

После этого в переменной href будет непосредственно URL ссылки.
  • 0

#5 vitorg

vitorg

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

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

Отправлено 06 марта 2009 - 15:32

Как обходной вариант, попробуйте открыть этот Popup через openWindow команду. Только там надо будет задать точный URL страницы.

Такой вариант можно использовать только в крайнем случае, если иначе никак, но таких случаев 1 на миллион.

2Vitmat: Попробуй запустить RC в режиме multiWindow, должно решить проблему.
  • 0

#6 Avg00r

Avg00r

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

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Вадим Янгунаев
  • Город:Самара


Отправлено 31 марта 2009 - 10:40

Столкнулся с похожей проблемой:

Имеется asp.net приложение, при клике по ссылке происходит открытие popup-окна. Ссылки генерируются сервером, имеют имена вроде (ctl00_main_greed_ctl02_Image1, ctl00_main_greed_ctl03_Image1 и т.д.), причем количество их может быть различным.
Проблемы две:
1. Решаемая (думаю конвертировать в c#), но пока заблокированная второй, это как пройтись по всем ссылкам из Selenium IDE
2. Не получается произвести действия над popup-окном.
Код следующий:
<tr>
	<td>click</td>
	<td>ctl00_main_greed_ctl02_Image1</td>
	<td></td>
</tr>
<tr>
	<td>waitForPopUp</td>
	<td></td>
	<td>30000</td>
</tr>
<tr>
	<td>selectWindow</td>
	<td>title=Тестовая страница</td>
	<td></td>
</tr>
<tr>
	<td>assertTitle</td>
	<td>Тестовая страница</td>
	<td></td>
</tr>
<tr>
	<td>clickAndWait</td>
	<td>buttonOk</td>
	<td></td>
</tr>
Происходит клик по ссылке, открывается окно, выбирается якобы окно по title (эта строка светло-зеленая в Selenuim'e), на не проходит ни ассерт по тайтлу, ни клики по кнопкам.
Если же по этим шагам проходить вручную (кликая по камандам в IDE по очереди), то все проходит!
(FF3.0.6, Selenium IDE 1.0b2)
В чем тут может быть дело, подскажите?
  • 0

468x60.jpg


#7 Avg00r

Avg00r

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

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Вадим Янгунаев
  • Город:Самара


Отправлено 31 марта 2009 - 13:04

Попробовал добавить перед AssertTitle команду Close — закрывается именно popup-окно. Но ничего вроде verifyText, Assert или действия с кнопками - не проходят (при прогоне автоматом, при ручном прокликивании все ок..)

Добавлено ещё позже :)
Вобщем это был баг. Установил вместо второй беты третью (последний из снепшотов, от 05.03.2009) — та же последовательность действий уже приводит к ожидаемому результату. Другой вопрос не сломаются ли при этом все остальные, уже существующие тесты...
Такая вот фича.
Если кто все-таки знает, как побороть такое поведение в b2, отпишитесь плз :)
  • 0

468x60.jpg



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

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