在webbrowser或watin中捕获用户活动

时间:2012-01-18 10:41:12

标签: c# events browser watin

有没有办法检测 WebBrowser 中的所有可能的用户活动,并返回自定义 事件 ?例如:用户点击“搜索”按钮,返回“SearchButtonClicked”自定义 事件

就像记录用户所做的所有活动,存储在序列中,并且可以在他想要的时候自动化。

编辑:我不拥有该网页。我正在尝试创建一个应用程序来自动搜索谷歌上的一些搜索。

2 个答案:

答案 0 :(得分:3)

哇,这将是一个带宽密集的应用程序... :)例如,您可能会考虑像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进行投票。

答案 1 :(得分:0)

查看 HtmlElementEventHandler 的类型: http://msdn.microsoft.com/en-us/library/system.windows.forms.htmlelement_events%28v=vs.110%29.aspx

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

查看使用 HtmlElementEventHandler 时所需的向下转换的使用情况 http://www.hanselman.com/blog/BackToBasicsThisIsNotTheObjectYoureLookingwaitOhItIsTheObject.aspx

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