gpt4 book ai didi

java - 未找到元素异常 : HTMLUnit - Search By ID

转载 作者:行者123 更新时间:2023-12-02 10:06:32 47 4
gpt4 key购买 nike

我正在尝试使用 HTMLUnit(第一次)从特定页面提取数据。具体来说,我目前正在尝试通过 ID(搜索框)获取 HTML 元素。

但是我遇到了:

Exception in thread "main" com.gargoylesoftware.htmlunit.ElementNotFoundException: elementName=[*] attributeName=[id] attributeValue=[space_search_keyword]
at com.gargoylesoftware.htmlunit.html.HtmlPage.getHtmlElementById(HtmlPage.java:1547)
at com.gargoylesoftware.htmlunit.html.HtmlPage.getHtmlElementById(HtmlPage.java:1517)
at Test.main(Test.java:33)

这是我的代码:

import java.util.List;

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HTMLParserListener;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlPage;

public class Test {

public static void main(String[] args) {

HtmlPage page = null;

WebClient client = new WebClient();
client.setCssEnabled(false);
client.setJavaScriptEnabled(false);

try {
String searchUrl = "https://25live.collegenet.com/umassd/#space_search[0]";
page = client.getPage(searchUrl);
}catch(Exception e){
e.printStackTrace();
}


//System.out.println(page.asXml());
HtmlElement searchBox = (HtmlElement)page.getHtmlElementById("space_search_keyword");

}

}

使用 page.asXML() 进一步检查后,页面似乎未正确加载,这就是为什么找不到该项目?我不确定为什么 HTMLUnit 没有加载它。无需登录,您只需在浏览器中输入即可看到该页面。

任何有关调试此类 HTMLUnit 问题的帮助将不胜感激。

最佳答案

该网站是一个用 Angular 编写的 SPA(单页应用程序)。您需要 JavaScript 来运行它。

不幸的是,HtmlUnit 的 JavaScript 功能不足以运行 Angular,因此您的方法不起作用。

你可以尝试:

  • 对页面进行逆向工程并获取 SPA 正在访问的底层资源
  • 尝试 Selenium ChromeDriver(它实际上会打开 Chrome 并模拟页面上的按钮点击)

关于java - 未找到元素异常 : HTMLUnit - Search By ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55301402/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com