尝试在IMDb网站上获取搜索结果。代码如下:
public static void main(String[] args) throws IOException
{
java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF);
System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");
final WebClient webClient = new WebClient(BrowserVersion.CHROME);
HtmlPage page1 = webClient.getPage("http://www.imdb.com");
HtmlInput input1 = page1.getElementByName("q");
input1.setValueAttribute("Teenage Mutant Ninja Turtles");
HtmlSubmitInput submit = page1.getElementByName("navbar-submit-button");
page1 = submit.click();
System.out.println(page1.asText());
webClient.closeAllWindows();
}
我得到的输出是:
线程中的异常" main" com.gargoylesoftware.htmlunit.ElementNotFoundException: elementName = [*] attributeName = [name] attributeValue = [navbar-find] at com.gargoylesoftware.htmlunit.html.HtmlPage.getElementByName(HtmlPage.java:1747) 在main.Main.main(Main.java:37)Java结果:1
提交按钮的ID为:navbar-submit-button。
源代码是:
<button id="navbar-submit-button" class="primary btn" type="submit"><div class="magnifyingglass navbarSprite"></div></button>
提前谢谢。
答案 0 :(得分:2)
您的示例中有两个重要的情况:
1 - 由于以下行,您需要一个名为q
的元素:
HtmlInput input1 = page1.getElementByName("q");
2 - 你有一个id="navbar-submit-button"
的元素,所以你必须使用getElementById:
HtmlSubmitInput submit = page1.getElementById("navbar-submit-button");
答案 1 :(得分:0)
它对我有用的方法是使用XPath。这是我可以选择id。太好了。谢谢你的帮助。