C#Webbrowser文档,invokemember(“ click”),是否可以等到该单击动作解决? - c#

我正在做的是一个Invokemember(“ Click”),问题是我希望能够获取生成的innerhtml。问题是我不确定如何/是否有可能等到invokemember(“ click”)的最终操作解决。意思是,当您执行此单击操作时,在javascript中,您将获得列出的下20个项目。但是,我不确定如何确定何时将完全加载javascript。以下是我正在使用的。

private void button1_Click(object sender, EventArgs e)
{
    HtmlElement button = webBrowser1.Document.GetElementById("ctl08_ctl00_InventoryListDisplayFieldRepeater2_ctl00_BlockViewPaging_Next");
    button.InvokeMember("click");
    HtmlElement document = webBrowser1.Document.GetElementsByTagName("html")[0];


}

参考方案

一种可能的解决方案是在javascript中修改您的“ click”事件处理程序,以使其在退出方法之前(完成所有工作之后)更改某些隐藏的输入字段的值。您可以附加到C#代码更改字段的事件,并在触发它时采取行动。

// Your init method - you can call it after `InitializeComponent`
// in the constructor of your form
Init() {
    webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
}

void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) {
    webBrowser1.Document.GetElementsByTagName("statusField")[0].AttachEventHandler("onchange", WorkDone);
}

void WorkDone(object sender, EventArgs e) {
    HtmlElement document = webBrowser1.Document.GetElementsByTagName("html")[0];
}

那是原始的解决方案,我还没有检查"onchange"是否是正确的DOM事件。

另外,在文档完全加载之前不能附加到DOM事件,这就是为什么我将附加逻辑放在DocumentCompleted事件的处理程序中的原因。

“ new”语句之后的花括号有什么作用? - java

我在查看this example并想知道第一行的作用:private SiteStreamsListener listener = new SiteStreamsListener() { 看起来您可以以这种方式声明其他方法或重写方法。例如,我可以做以下事情吗?ArrayList myList = new ArrayList() { @Override Str…

“ finally”子句在异常处理中的好处 - java

作为对此的新手,在异常处理中使用finally子句有什么好处。换句话说,什么时候最好使用它,什么时候最好不要使用它。我唯一想到的就是关闭输入/输出流……还有其他好处? 参考方案 StinePike撰写的任何内容都很完美,但我想在其中添加一些内容。无论是否发生异常,都将执行finally块...。因此,我们可以通过在try块以及catch block()中写入…

“ c#运算符是否就像Java中的instanceof一样?” - c#

我刚刚发现了这个运算符,我想知道它是否可以安全使用。我的意思是,在Java中,我们的老师总是告诉我们要避免使用instanceof(),因为它会破坏多态性并经常显示不良的编码。提前。 c#参考方案 它是安全的'。至少使用此检查更为安全,而不仅仅是强制转换并假定类型!您可能更喜欢使用as运算符,该运算符将转换为所需的类型(如果适用),否则返回null。只记得检…

“ IServiceCollection”不包含“ AddSpaStaticFiles”的定义 - c#

我不知道为什么Startup.cs引发此错误。我尝试了建议的here解决方案(包括重新启动计算机并运行dotnet restore),但没有成功。有任何想法吗? CS1061'IServiceCollection'不包含'AddSpaStaticFiles'的定义,并且找不到可以接受的扩展方法'AddSpaStaticFiles'接受类型为'IService…

如何使HtmlGenericControl属性runat =“ server”。以从代码访问它? - c#

访问运行时创建的某些HtmlGenericControl时,我遇到一个奇怪的问题。如何制作HtmlGenericControl runat ="server"?以便我可以访问它 HtmlGenericControl myli = new HtmlGenericControl("li"); c#参考方案 正确,因为run…