首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngleSharp提交一份表单

AngleSharp提交一份表单
EN

Stack Overflow用户
提问于 2019-10-20 13:27:18
回答 1查看 1K关注 0票数 2

在下面的例子中

代码语言:javascript
复制
var url = "http://anglesharp.azurewebsites.net/PostUrlencodeNormal";
var config = new Configuration { AllowRequests = true };
var html = DocumentBuilder.Html(new Uri(url), config);
var form = html.Forms[0] as IHtmlFormElement;
var name = form.Elements["Name"] as IHtmlInputElement;
var number = form.Elements["Number"] as IHtmlInputElement;
var active = form.Elements["IsActive"] as IHtmlInputElement;
name.Value = "Test";
number.Value = "1";
active.IsChecked = true;
form.Submit();

然而,它抱怨说值不是IHtmlInputElement的扩展,而是使用SetValue

但是SetValues基本上是一本字典,我不知道如何在AngleSharp中使用它。

在另一个例子中,https://anglesharp.github.io/docs/Forms.html,它也使用

代码语言:javascript
复制
var queryInput = form.Elements["q"] as IHtmlInputElement;

if (queryInput != null)
{
   queryInput.Value = "anglesharp";
}

我假设在将queryInput设置为值之后,我可以这样做

代码语言:javascript
复制
 var input = queryInput.Value to ensure the value is set.

我的问题是,我正在设置三个字段,即

userID,pin,密码在我点击提交之前。如果我使用AngleSharp,它会将我带回到同一个页面,这意味着身份验证无效。我知道字段中正确地填充了值,我只是不确定它是否确实传递了这些值。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-10-20 22:10:44

我很想帮助你,但我担心我们在这方面可能有几个问题。

提交带有所有输入字段的表单的here)

  • Potentially,

  • /到目前为止的方法是正确的,但也可以缩短一点(AngleSharp有一些助手--

  • JavaScript妨碍了您的工作。如果是这样的话,AngleSharp.Js可能会有所帮助。不过,请记住,AngleSharp.Js是实验性的,可能不适用于复杂的脚本/页面。

如果您遇到了后者,那么您基本上有两个选择:要么使用连接本地(无头)浏览器的桥接(例如,Chrome),要么在页面上的JS实际上正在做的事情上投入一些时间--毕竟,您只关心HTTP传输。如果将其归结为HTTP,则可以同时使用- AngleSharp处理页面/ cookies等,其余则使用手动HTTP传输。

如果您需要更多的信息,请告诉我--我可以编辑这个响应以更好地满足您的需要。

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

https://stackoverflow.com/questions/58473481

复制
相关文章

相似问题

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