Class WindowSelector
- java.lang.Object
-
- jp.vmi.selenium.selenese.utils.WindowSelector
-
public class WindowSelector extends Object
Re-implementation of "com.thoughtworks.selenium.webdriven.Windows".
-
-
Constructor Summary
Constructors Constructor Description WindowSelector()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static WindowSelectorgetInstance()Get WindowSelector instance.StringselectBlankWindow(Context context)Select blank window.StringselectPopUp(Context context, String windowID)StringselectPreviousWindow(Context context)Select window without current selected.StringselectWindow(Context context, String windowID)Select window.StringselectWindowWithTitle(Context context, String title)Select window with title.static voidsetInstance(WindowSelector ws)Set WindowSelector instance.static voidwaitAfterSelectingWindowIfNeed(Context context)Wait after selecting a window if the browser is Firefox.
-
-
-
Method Detail
-
setInstance
public static void setInstance(WindowSelector ws)
Set WindowSelector instance.- Parameters:
ws- WindowSelector instance.
-
getInstance
public static WindowSelector getInstance()
Get WindowSelector instance.- Returns:
- windowSelector WindowSelector instance.
-
selectWindow
public String selectWindow(Context context, String windowID)
Select window.- Parameters:
context- Selenese Runner context.windowID- window ID.- Returns:
- selected window handle or null.
The following text is copied from:
https://github.com/SeleniumHQ/selenium/blob/master/ide/main/src/content/selenium-core/reference.html
(Note: "var=" is not supported with the restrictions of Selenium WebDriver)Selects a popup window using a window locator; once a popup window has been selected, all commands go to that window. To select the main window again, use null as the target.
Window locators provide different ways of specifying the window object: by title, by internal JavaScript "name," or by JavaScript variable.
- title=My Special Window
- Finds the window using the text that appears in the title bar. Be careful; two windows can share the same title. If that happens, this locator will just pick one.
- name=myWindow, handle=myWindow
- Finds the window using its internal JavaScript "name" property or the window specified by window handle of Selenium. The "name" property is the second parameter "windowName" passed to the JavaScript method window.open(url, windowName, windowFeatures, replaceFlag) (which Selenium intercepts).
- var=variableName (* Selenese Runner not supported)
- Some pop-up windows are unnamed (anonymous), but are associated with a JavaScript variable name in the current application window, e.g. "window.foo = window.open(url);". In those cases, you can open the window using "var=foo".
If no window locator prefix is provided, we'll try to guess what you mean like this:
- if windowID is null, (or the string "null") then it is assumed the user is referring to the original window instantiated by the browser).
- (* Selenese Runner not supported) if the value of the "windowID" parameter is a JavaScript variable name in the current application window, then it is assumed that this variable contains the return value from a call to the JavaScript window.open() method.
- (* on Selenese Runner, windowID is window.name or window handle) Otherwise, selenium looks in a hash it maintains that maps string names to window "names".
-
If that fails, we'll try looping over all of the known windows to
try to find the appropriate "title". Since "title" is not
necessarily unique, this may have unexpected behavior.
(
selectWindow(Context, String)does not try looping)
If you're having trouble figuring out the name of a window that you want to manipulate, look at the Selenium log messages which identify the names of windows created via window.open (and therefore intercepted by Selenium). You will see messages like the following for each window as it is opened:
debug: window.open call intercepted; window ID (which you can use with selectWindow()) is "myNewWindow"
In some cases, Selenium will be unable to intercept a call to window.open (if the call occurs during or before the "onLoad" event, for example). (This is bug SEL-339.) In those cases, you can force Selenium to notice the open window's name by using the Selenium openWindow command, using an empty (blank) url, like this: openWindow("", "myFunnyWindow").
Arguments:
windowID - the JavaScript window ID of the window to select
-
selectPopUp
public String selectPopUp(Context context, String windowID)
- Parameters:
context- Selenese Runner context.windowID- windowID.- Returns:
- selected window handle or null.
-
selectPreviousWindow
public String selectPreviousWindow(Context context)
Select window without current selected.- Parameters:
context- Selenese Runner context.- Returns:
- selected window handle or null.
-
selectWindowWithTitle
public String selectWindowWithTitle(Context context, String title)
Select window with title.- Parameters:
context- Selenese Runner context.title- window title.- Returns:
- selected window handle or null.
-
selectBlankWindow
public String selectBlankWindow(Context context)
Select blank window.- Parameters:
context- Selenese Runner context.- Returns:
- selected window handle or null.
-
waitAfterSelectingWindowIfNeed
public static void waitAfterSelectingWindowIfNeed(Context context)
Wait after selecting a window if the browser is Firefox.- Parameters:
context- Selenese Runner context.
-
-