public Object transform(final Object obj) { if (obj instanceof BaseFrame) { return ((BaseFrame) obj).getEnclosedWindow(); } return ((FrameWindow) obj).getFrameElement().getEnclosedWindow(); } }
/** * Gives a basic representation for debugging purposes. * @return a basic representation */ @Override public String toString() { return "FrameWindow[name=\"" + getName() + "\"]"; }
HtmlPage page = client.getPage("http://example.com/"); List<FrameWindow> frames = page.getFrames(); for (FrameWindow frame : frames) { if (frame.getFrameElement().getId().equals("frameContent")) { page = (HtmlPage) frame.getEnclosedPage(); } }
/** * {@inheritDoc} */ @Override protected boolean isJavaScriptInitializationNeeded() { return getScriptableObject() == null || !(getEnclosedPage().getWebResponse() instanceof StringWebResponse); // TODO: find a better way to distinguish content written by document.open(),... }
/** * {@inheritDoc} */ @Override protected boolean isJavaScriptInitializationNeeded() { return this.getScriptObject() == null || !(getEnclosedPage().getWebResponse() instanceof StringWebResponse); // TODO: find a better way to distinguish content written by document.open(),... }
final String enclosingPageState = fw.getEnclosingPage().getDocumentElement().getReadyState(); final URL frameUrl = fw.getEnclosedPage().getUrl(); if (!DomNode.READY_STATE_COMPLETE.equals(enclosingPageState) || frameUrl == URL_ABOUT_BLANK) { return; final BaseFrameElement frameElement = fw.getFrameElement(); if (frameElement.isDisplayed()) { final Object element = frameElement.getScriptableObject();
/** * Return the given frame in the current conversation. * * @param frameNameOrId Frame name or ID. * @return The frame found or null. */ private WebWindow getFrame(String frameNameOrId) { // First try ID for (FrameWindow frame : getCurrentPage().getFrames()) { if (frameNameOrId.equals(frame.getFrameElement().getId())) { return frame; } } // Now try with Name for (FrameWindow frame : getCurrentPage().getFrames()) { if (frameNameOrId.equals(frame.getName())) { return frame; } } // Nothing was found. return null; }
final BaseFrameElement frame = frameWindow.getFrameElement(); "text/html,application/xhtml+xml,application/xml;q=0.9, text/*;q=0.7, */*;q=0.5"); if (frameWindow.getName() == null || frameWindow.getName().isEmpty()) { frameWindow.setName("frame_" + page.getFrames().indexOf(frameWindow));
/** * Returns the currently loaded page in the enclosed window. * This is a facility method for <code>getEnclosedWindow().getEnclosedPage()</code>. * @see WebWindow#getEnclosedPage() * @return the currently loaded page in the enclosed window, or {@code null} if no page has been loaded */ public Page getEnclosedPage() { return getEnclosedWindow().getEnclosedPage(); }
/** * Returns the domain name of the server that served the document, or {@code null} if the server * cannot be identified by a domain name. * @return the domain name of the server that served the document * @see <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-2250147"> * W3C documentation</a> */ @JsxGetter({CHROME, IE}) public String getDomain() { if (domain_ == null && getPage().getWebResponse() != null) { URL url = getPage().getUrl(); if (url == WebClient.URL_ABOUT_BLANK) { final WebWindow w = getWindow().getWebWindow(); if (w instanceof FrameWindow) { url = ((FrameWindow) w).getEnclosingPage().getUrl(); } else { return null; } } domain_ = url.getHost().toLowerCase(Locale.ROOT); } return domain_; }
/** * {@inheritDoc} */ @Override public WebWindow getTopWindow() { return getParentWindow().getTopWindow(); }
/** * Creates an instance for a given frame. */ FrameWindow(final BaseFrameElement frame) { super(frame.getPage().getWebClient()); frame_ = frame; final WebWindowImpl parent = (WebWindowImpl) getParentWindow(); performRegistration(); parent.addChildWindow(this); }
/** * Closes this frame window. */ public void close() { final WebWindowImpl parent = (WebWindowImpl) getParentWindow(); parent.removeChildWindow(this); getWebClient().deregisterWebWindow(this); } }
private static Object getFrameWindowByName(final HtmlPage page, final String name) { try { return page.getFrameByName(name).getScriptObject(); } catch (final ElementNotFoundException e) { return NOT_FOUND; } }
/** * Creates an instance for a given frame. */ FrameWindow(final BaseFrameElement frame) { super(frame.getPage().getWebClient()); frame_ = frame; performRegistration(); final WebWindowImpl parent = (WebWindowImpl) frame_.getPage().getEnclosingWindow(); parent.addChildWindow(this); }
final String enclosingPageState = fw.getEnclosingPage().getDocumentElement().getReadyState(); final URL frameUrl = fw.getEnclosedPage().getUrl(); if (!DomNode.READY_STATE_COMPLETE.equals(enclosingPageState) || frameUrl == URL_ABOUT_BLANK) { return; final BaseFrameElement frameElement = fw.getFrameElement(); if (frameElement.isDisplayed()) { final Object element = frameElement.getScriptableObject();
for (Object frame : page.getFrames()) { FrameWindow frameWindow = (FrameWindow) frame; if (frameName.equals(frameWindow.getFrameElement().getId())) { window = frameWindow; break; } else if (frameName.equals(frameWindow.getName())) { window = frameWindow; break;
/** * Returns the currently loaded page in the enclosed window. * This is a facility method for <code>getEnclosedWindow().getEnclosedPage()</code>. * @see WebWindow#getEnclosedPage() * @return the currently loaded page in the enclosed window, or {@code null} if no page has been loaded */ public Page getEnclosedPage() { return getEnclosedWindow().getEnclosedPage(); }
/** * Returns the domain name of the server that served the document, or {@code null} if the server * cannot be identified by a domain name. * @return the domain name of the server that served the document * @see <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-2250147"> * W3C documentation</a> */ @JsxGetter({CHROME, IE}) public String getDomain() { if (domain_ == null && getPage().getWebResponse() != null) { URL url = getPage().getUrl(); if (url == WebClient.URL_ABOUT_BLANK) { final WebWindow w = getWindow().getWebWindow(); if (w instanceof FrameWindow) { url = ((FrameWindow) w).getEnclosingPage().getUrl(); } else { return null; } } domain_ = url.getHost().toLowerCase(Locale.ROOT); } return domain_; }
/** * {@inheritDoc} */ @Override protected boolean isJavaScriptInitializationNeeded() { return this.getScriptObject() == null || !(getEnclosedPage().getWebResponse() instanceof StringWebResponse); // TODO: find a better way to distinguish content written by document.open(),... }