gpt4 book ai didi

C# Webbrowser 文档,invokemember ("click"),是否可以等到该单击操作得到解析?

转载 作者:行者123 更新时间:2023-11-28 10:17:28 25 4
gpt4 key购买 nike

我正在进行的是 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 事件的处理程序中。

关于C# Webbrowser 文档,invokemember ("click"),是否可以等到该单击操作得到解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6273514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com