AngleSharp,select 在 SubmitAsync 上提交输入
AngleSharp, select submit input on SubmitAsync
我有一个问题
与 SubmitAsync 一样,select 输入(类型提交)因为页面上有几个这样的输入并且脚本按下(执行)第一个输入
var document = _context.Active;
var form = document.QuerySelector(formSelector) as IHtmlFormElement;
var button = document.QuerySelector(buttonSelector) as IHtmlFormElement;
if (form != null){form.SetValues(fields); }
await form.SubmitAsync(button);
submit inputs
我想通过函数重载指定输入,但正如它所理解的那样,它只是指向形式为
的输入
谢谢!
对于 AngleSharp 中的表单,存在各种助手。根据规范,使用哪个输入字段/按钮提交表单可能会有所不同。因此,符合 W3C 标准的浏览器引擎将在提交表单时执行以下操作
- 提交所使用的按钮/输入的名称(如果使用了具有有效名称的按钮/输入)
- 如果使用了 type=image 字段,请提交鼠标坐标
- 一些其他更奇特的东西
既然我们讨论了这个问题,我们已经知道为什么一个简单的 form.SubmitAsync()
不会那么有用 - 以防我们想要/必须 "fake" 通过单击某个地方来提交表单。然而,幸运的是,AngleSharp 在指定 "source"(提交)的表单上有另一个重载。此来源可以是任何 IHtmlElement
.
在上面的代码中,您提供了 null 作为源(请参阅 document.QuerySelector(buttonSelector) as IHtmlFormElement
- 我想查询选择器实际上应该产生一个按钮 - IHtmlButtonElement
或 IHtmlInputElement
- 在任何如果是 IHtmlElement
,但不是 IHtmlFormElement
——这不是 "element of the form",而是 "the form element")。
因此下面一行
document.QuerySelector<IHtmlInputElement>(buttonSelector).SubmitAsync(fields)
与
相同
var form = document.QuerySelector<IHtmlFormElement>(formSelector);
if (form != null)
{
form.SetValues(fields);
form.SubmitAsync(document.QuerySelector(buttonSelector));
}
希望对您有所帮助!
我有一个问题 与 SubmitAsync 一样,select 输入(类型提交)因为页面上有几个这样的输入并且脚本按下(执行)第一个输入
var document = _context.Active;
var form = document.QuerySelector(formSelector) as IHtmlFormElement;
var button = document.QuerySelector(buttonSelector) as IHtmlFormElement;
if (form != null){form.SetValues(fields); }
await form.SubmitAsync(button);
submit inputs 我想通过函数重载指定输入,但正如它所理解的那样,它只是指向形式为
的输入谢谢!
对于 AngleSharp 中的表单,存在各种助手。根据规范,使用哪个输入字段/按钮提交表单可能会有所不同。因此,符合 W3C 标准的浏览器引擎将在提交表单时执行以下操作
- 提交所使用的按钮/输入的名称(如果使用了具有有效名称的按钮/输入)
- 如果使用了 type=image 字段,请提交鼠标坐标
- 一些其他更奇特的东西
既然我们讨论了这个问题,我们已经知道为什么一个简单的 form.SubmitAsync()
不会那么有用 - 以防我们想要/必须 "fake" 通过单击某个地方来提交表单。然而,幸运的是,AngleSharp 在指定 "source"(提交)的表单上有另一个重载。此来源可以是任何 IHtmlElement
.
在上面的代码中,您提供了 null 作为源(请参阅 document.QuerySelector(buttonSelector) as IHtmlFormElement
- 我想查询选择器实际上应该产生一个按钮 - IHtmlButtonElement
或 IHtmlInputElement
- 在任何如果是 IHtmlElement
,但不是 IHtmlFormElement
——这不是 "element of the form",而是 "the form element")。
因此下面一行
document.QuerySelector<IHtmlInputElement>(buttonSelector).SubmitAsync(fields)
与
相同var form = document.QuerySelector<IHtmlFormElement>(formSelector);
if (form != null)
{
form.SetValues(fields);
form.SubmitAsync(document.QuerySelector(buttonSelector));
}
希望对您有所帮助!