我原来的问题很混乱,我重写了。现在它更加清晰。
您好我正在尝试使用HtmlUnit导航网页。我在尝试着 去网址 - >在文本框中输入文本(在第1帧中) - >按搜索按钮(在第1帧中) - >转到搜索结果显示的新框架(第2帧)。
当我写这段代码时:
HtmlPage page = webClient.getPage("http://someurl.com");
HtmlPage toolbar = (HtmlPage) page.getFrameByName("toolbar").getEnclosedPage(); //GET TOOLBAR FRAME
HtmlTextInput searchBox = toolbar.getElementByName("query"); //GET TEXT BOX ELEMENT
searchBox.setValueAttribute("SOME STRING"); //FILL TEXT BOX ELEMENT WITH TEXT
List<HtmlElement> elements1 = (List<HtmlElement>) toolbar.getByXPath(<SOME XPATH>); //LIST OF A SINGLE ELEMENT WHICH IS THE SEARCH BUTTON
HtmlElement element2 = elements1.get(0); // GET SEARCH BUTTON ELEMENT FROM LIST
page = element2.click(); // CLICK SEARCH BUTTON AND LOAD NEW PAGE TO "page"
我正在搜索"SOME STRING"
。当我这样做时,另一个页面出现(虽然不刷新页面,URL永远不会刷新)与一个附加框架。现在,我点击搜索按钮,但新的page
只是toolbar
框架的网页,而不是整个网页的网页。
我想现在访问其他框架。那么如何“退出”当前帧并选择新帧?
答案 0 :(得分:0)
我找到了我的试验和错误的答案。
page = (HtmlPage) searchButton.click().getEnclosingWindow().getTopWindow().getEnclosedPage();
page = (HtmlPage) page.getFrameByName("Frame 1").getEnclosedPage();
page = (HtmlPage) page.getFrameByName("Frame 2").getEnclosedPage();
效果很好,希望我能帮助你们中的一些人。