首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用NHtmlUnit单击按钮

无法使用NHtmlUnit单击按钮
EN

Stack Overflow用户
提问于 2015-08-30 00:38:38
回答 1查看 91关注 0票数 0

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

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

这里是关键区域:

代码语言:javascript
复制
var loginFormButtons = loginForm.GetElementsByTagName("button");
Assert.IsNotNull(loginFormButtons);

var loginButton = (HtmlButton)loginFormButtons.First();
Assert.IsNotNull(loginButton);

var loginButtonText = loginButton.AsText();
StringAssert.Contains("sign in", loginButtonText.toLowerCase());

loginButton.SetAttribute("type", "submit");
loginForm.AppendChild(loginButton);

var consentPage = (HtmlPage)loginButton.Click();
Assert.IsNotNull(consentPage);

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

https://github.com/wadewegner/uber-sdk-for-net/blob/42fd845fe43e11e3153b07d830ed40e3577b1ed3/src/UberSDKForNet.FunctionalTests/Tests.cs#L174之前,一切都运行得很好。我所期望的是,这会把我带到同意页面,在那里,我要么允许,要么拒绝优步应用程序访问我的信息。但是,它看起来只是简单地重新加载原始页面,并且consentPage看起来和loginPage是一样的。

有没有NHtmlUnit专家可能会有一些想法?

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

EN

回答 1

Stack Overflow用户

发布于 2015-08-30 05:35:06

虽然它并不完美,但是将WebClient设置为FIREFOX_17而不是CHROME似乎解决了这个问题。

代码语言:javascript
复制
var webClient = new WebClient(BrowserVersion.FIREFOX_17);

查看此处:https://github.com/wadewegner/uber-sdk-for-net/blob/ceb1cdf80cebb31608744c050b649ddd6a75fb7a/src/UberSDKForNet.FunctionalTests/Tests.cs#L107

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32288348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档