问题标签 [nhtmlunit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1279 浏览

submit - NHtmlUnit 无法提交按钮

我正在发现关于 NHtmlUnit 来构建应用程序 Web。但是当我尝试使用自动登录到雅虎邮件时。但是在我运行代码之后。我刷新了雅虎的登录页面,所以没有任何改变。未登录。

代码:

请帮我解释为什么。我在 .NET MVC 4 C# 上编写它。非常感谢。

0 投票
1 回答
2859 浏览

htmlunit - com.gargoylesoftware.htmlunit.ScriptException:异常调用打开

我正在使用 Intranet 站点。当我通过 chrome 或 IE 浏览器登录https://itam.flextron.com.au/arsys/shared/login.jsp ”网站时,一切正常。但是,当我通过浏览器登录网站时,会弹出一个窗口并自动关闭,然后显示登录页面。

但是当我通过 HTMLUNIT 访问 Intranet 页面时,它会抛出一些 html 代码的异常。

公共类TestClass {

}

**

例外:

**

0 投票
0 回答
388 浏览

c# - C#, HtmlUnit JavaScript 支持

我正在尝试使用 NHtmlUnit.WebClient 读取测试页面。该页面不断要求启用 JavaScript。我错过了什么吗?

我的代码:

0 投票
1 回答
391 浏览

c# - NHtmlUnit 错误“无法生成 DH 密钥对”

每次我尝试抓取页面时,例如

我收到以下错误:

附加信息:java.lang.RuntimeException:无法生成 DH 密钥对

网络客户端设置

0 投票
1 回答
91 浏览

oauth-2.0 - 使用 NHtmlUnit 无法单击按钮

我有一个模拟 Uber 登录的单元测试。目标是获取一个没有交互式登录就无法访问的令牌。我已经完成了这项工作,但似乎 Uber 登录体验已经改变,现在我在让 NHtmlUnit 成功提交登录按钮时遇到问题。

这是我的最新尝试:https ://github.com/wadewegner/uber-sdk-for-net/blob/42fd845fe43e11e3153b07d830ed40e3577b1ed3/src/UberSDKForNet.FunctionalTests/Tests.cs#L100

这是关键区域:

我知道代码很冗长,但单元测试 NHtmlUnit 是一场噩梦。我也尝试了很多不同的排列,但它们几乎都以HtmlButton.

在https://github.com/wadewegner/uber-sdk-for-net/blob/42fd845fe43e11e3153b07d830ed40e3577b1ed3/src/UberSDKForNet.FunctionalTests/Tests.cs#L174之前一切正常。我希望这会将我带到同意页面,在该页面我可以允许或拒绝 Uber 应用程序访问我的信息。但是,它似乎只是重新加载原始页面,并且consentPage似乎与loginPage.

任何可能有一些想法的 NHtmlUnit 专家?

我还要指出的唯一一件事是,过去我能够成功地使用HtmlSubmitInput而不是,HtmlButton但这似乎是 Uber 所做的更改之一。也许这是问题的一部分?

0 投票
1 回答
477 浏览

c# - 在 NHtmlUnit 中创建 WebClient 时方法未找到异常

我使用 NuGet 将 NHtmlUnit Pacakge (v2.15.0.0) 安装到使用 Visual Studio 2015 的 MVC5 项目中。

我也尝试过不指定浏览器和使用 IE11。

以下是异常详情:

以下是调试器对 NHtmlUnit 和 IKVM.OpenJDK.Util.dll .dll 的说明:

这感觉很像 .net 模块版本不匹配,但我唯一提到或曾经使用过任何 NHtmlUnit 或 IKVM dll 的地方是在项目中(它也在干净的机器上重现)。关于诊断方法的任何想法?

0 投票
0 回答
222 浏览

java - htmlunit 代理获取 WebSite Blocked / Access to Site Restricted statuscode 403

我正在尝试使用代理抓取网站,但我被阻止/访问被拒绝。

这是我的代码:

我也试过:

我试图抓取的每个网站都得到:

我不明白 getCredentialsProvider 函数有什么用。谢谢您的帮助。我使用的代理是私人代理。

0 投票
1 回答
364 浏览

c# - 使用 TLS 1.2 和使用 MVC 5 应用程序的特定密码套件连接到网站

我有一个使用 NHtmlUnit 的 WebClient 连接到另一个网站的 MVC 5 应用程序,我在调试时无法建立该连接。

我要连接的网站需要以下协议和密码套件: 文本

最初,当尝试从目标站点连接和检索 HTML 时,我遇到了一个错误: 致命警报:handshake_failure

为了解决这个问题,我现在在 WebClient 上指定 SLLClientProtocols 和 SSLClientCipherSuites 选项以包含上述协议和密码套件。但是现在我每次收到的错误是: 目前安装的提供程序无法支持 [密码套件]

我已将本地操作系统更新为 Server 2019 Datacenter(完全更新),我的理解是此操作系统版本应包括对 TLS 1.2的支持以及我需要的密码套件(或至少其中一个)。

最初 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols 的注册表没有 TLS 1.2 的密钥,所以我添加了客户端和服务器的子键,每个子键的“DisabledByDefault”设置为 0 和“启用”设置为 1。

我的项目针对 .NET Framework 4.7.2。我确保验证 system.web 下的 web.config 文件指定了编译和运行时的框架版本:

我还添加了以下内容来明确设置协议:

然而,这似乎没有帮助,因为我认为它正在强制 TLS 1.2,但错误似乎集中在密码套件上。如果没有这条线,我的理解是 ServicePointManager.SecurityProtocol 将默认为 SystemDefault 的值,这将允许应用程序使用底层操作系统 TLS 版本选择默认值。我的操作系统是否支持我想要的密码套件,但不是这些选择默认值的一部分?

这是我正在使用的当前无法使用的代码:

在搜索我收到的错误消息时,我得到了很多关于 Java 的结果。我认为这是因为 NHtmlUnit 是 HtmlUnit 的 .NET 包装器,它是 Java 库的一部分。我看到 NHtmlUnit 使用 OpenJDK,OpenJDK 是否有可能出现问题,什么不支持“已安装的提供程序”?

任何帮助了解这里出了什么问题都会有很大的帮助,谢谢。

编辑:我能够使用标准 System.Net.Http.HttpClient 获得我需要的请求和响应。这使我相信该错误与 NHtmlUnit 无关。

0 投票
0 回答
24 浏览

htmlunit - HTMLUNIT - 从表中获取所有列的问题

我需要更多帮助。我正在尝试获取表格行的所有列,但变量只获得 3 个单元格,我查看了这个页面的 html,有 7 列。

我很感激帮助。

按照代码:

公共类 BotEditalCapturaProcesoEletronicoDispensaRJ { 私有静态最终字符串 url = "https://www.compras.rj.gov.br/Portal-Siga/ProcessoEletronicoDispensa/buscar.action";

}