Selenium 2:检测链接目标的内容类型

2023-12-08

我正在使用 Selenium 2 Java API 与网页交互。我的问题是:如何检测链接目标的内容类型?

基本上,这是背景:在单击链接之前,我想确保响应是 HTML 文件。如果没有,我需要以其他方式处理。假设有一个 PDF 文件的下载链接。应用程序应直接读取该 URL 的内容,而不是在浏览器中打开它。

目标是让应用程序自动知道当前位置是 HTML、PDF、XML 还是其他内容,以便使用适当的解析器从文档中提取有用的信息。

Update

添加赏金:将奖励给允许我获取给定 URL 的内容类型的最佳解决方案。


正如 Jochen 所建议的,在不下载内容的情况下获取内容类型的方法是HTTP HEAD,并且 selenium webdrivers 似乎没有提供这样的功能。您必须找到另一个库来帮助您获取网址的内容类型。

可以执行此操作的 Java 库是Apache HttpComponents, 尤其Http客户端.

(以下代码未经测试)

HttpClient httpclient = new DefaultHttpClient();
HttpHead httphead = new HttpHead("http://foo/bar");
HttpResponse response = httpclient.execute(httphead);
BasicHeader contenttypeheader = response.getFirstHeader("Content-Type");

System.out.println(contenttypeheader);

该项目发布HttpClient 的 JavaDoc,文档HttpClient接口包含一个很好的例子。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium 2:检测链接目标的内容类型 的相关文章

随机推荐