Разобрался. Сделал. Если кому надо будет:
Selenium.prototype.doAllLinks = function( locate ) {
wnd=open(locate, "displayWindow", "width=500,height=400,status=yes,toolbar=yes,menubar=yes");
alert("Find all links and click them");
for (var i = 0; i < wnd.document.links.length; i++) {
getTopWin().getBrowser().addTab(wnd.document.links[i]);
}
}
function getTopWin ()
{
var windowManager = Components. classes ['@mozilla.org/appshell/window-mediator;1']. getService();
var windowManagerInterface = windowManager.
QueryInterface (Components. interfaces. nsIWindowMediator);
var topWindowOfType = windowManagerInterface. getMostRecentWindow ("navigator:browser");
if (topWindowOfType)
{
return topWindowOfType;
}
return null;
}
Вопрос возник:
wnd=open(locate, "displayWindow", "width=500,height=400,status=yes,toolbar=yes,menubar=yes");
alert("Find all links and click them");
for (var i = 0; i < wnd.document.links.length; i++) {
Если убрать строку
alert("Find all links and click them");
То страница не успевает загрузиться и wnd.document.links.length = 0;
Есть ли более красивый способ подождать? Читал про setTimeout и setInterval - они не подходят, так как все это управляется под selenium, а селениум некоторые js функции не всегда адекватно воспринимает.