Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 捕获webbrowser或watin中的用户活动_C#_Events_Browser_Watin - Fatal编程技术网

C# 捕获webbrowser或watin中的用户活动

C# 捕获webbrowser或watin中的用户活动,c#,events,browser,watin,C#,Events,Browser,Watin,是否有任何方法可以检测WebBrowser中所有可能的用户活动,并返回自定义事件?例如:用户单击“搜索”按钮,返回“SearchButtonClicked”自定义事件 它类似于,记录用户所做的所有活动,按顺序存储,并且可以在需要时自动进行 编辑:我没有自己的网页。我正在尝试制作一个应用程序来自动化谷歌上的一些搜索。哇,这将是一个带宽密集型应用程序…:)例如,您可以考虑像jQuery这样的框架来将事件附加到所有锚和按钮类型的输入,以执行对服务器的Ajax调用。因此,您可能会有以下过程: 1) 在所

是否有任何方法可以检测WebBrowser中所有可能的用户活动,并返回自定义事件?例如:用户单击“搜索”按钮,返回“SearchButtonClicked”自定义事件

它类似于,记录用户所做的所有活动,按顺序存储,并且可以在需要时自动进行


编辑:我没有自己的网页。我正在尝试制作一个应用程序来自动化谷歌上的一些搜索。

哇,这将是一个带宽密集型应用程序…:)例如,您可以考虑像jQuery这样的框架来将事件附加到所有锚和按钮类型的输入,以执行对服务器的Ajax调用。因此,您可能会有以下过程:

1) 在所有页面上包含一个JS文件,以执行以下操作:

$(document).ready(function () {
    var trackUserActivity = function(elementId, elementText) {
        $.ajax({
            type: "POST",
            url: "url/TrackUserActivity",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: JSON.stringify({
                ElementId: elementId,
                ElementText: elementText
            }),
            success: function (result) {
                // do something if call was successful
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                // do something if an error occurred
            }
        });
    };
    $("a, input[type=\"button\"], input[type=\"submit\"]").click(function() {
        trackUserActivity($(this).attr("id"), $(this).text());
    });
});
2) 创建可通过AJAX调用的Web方法以跟踪用户活动:

[WebMethod]
public static void TrackUserActivity(string ElementId, string ElementText)
{
    // Implement your user activity tracking logic, like saving it in a database
}

重要的大编辑:好吧,因为在你的OP编辑之后,你没有自己的应用程序,这是行不通的。我在这里为将来可能有类似需求的人保留答案,因此请不要因为没有明确说明OP而否决投票。

经过一些研究,我发现了
HtmlElementEventHandler

例如:

webBrowser1.Document.GetElementById("MainContent_LoginButton").Click += new HtmlElementEventHandler(test);

// some code...

public void test(object sender, HtmlElementEventArgs e)
{
    MessageBox.Show("Clicked login button");
}
请参见HtmlElementEventHandler的类型:

使用此事件处理程序了解发生的事件。在事件发生时,获取元素详细信息、标记详细信息并使用事件类型登录文件

请参阅使用HtmlElementEventHandler时所需的下传用法


当您想要重播操作时,您可以在提取标记名和值字段后按顺序运行记录的事件。

您检查过邮件列表了吗?我编辑了我的问题。这个解决方案可能很好,但我不是网页的所有者。是的,我刚刚看到了,并在我的答案中添加了一个“重要的大编辑…”菲,你这里有各种类型的。。。有些人对这个小小的向下箭头太高兴了我希望你能找到适合你的东西!