C# 在网页上模拟基于单击的事件

C# 在网页上模拟基于单击的事件,c#,javascript,C#,Javascript,此链接指向想象力验证码的实现 作者自己也要求人们制作算法,以测试其对抗AI攻击的效率 基本上,第一页是要求鼠标点击图像上的任何位置。。。我的问题是,我的算法得出了图像上的点(x,y),但我想在这个链接上实时模拟它 有人能告诉我,无论我成功与否,我如何在这个链接上发送点值并返回消息 本质上,我是在问如何在我的算法使用C#给出的点上模拟鼠标点击这个链接 我问这个问题只是为了研究这个验证码的特征及其准确性 非常感谢如果你想从代码中使用他们的实时站点,我想你说的是屏幕擦伤。我强烈建议查看(可通过nuge

此链接指向想象力验证码的实现

作者自己也要求人们制作算法,以测试其对抗AI攻击的效率

基本上,第一页是要求鼠标点击图像上的任何位置。。。我的问题是,我的算法得出了图像上的点(x,y),但我想在这个链接上实时模拟它

有人能告诉我,无论我成功与否,我如何在这个链接上发送点值并返回消息

本质上,我是在问如何在我的算法使用C#给出的点上模拟鼠标点击这个链接

我问这个问题只是为了研究这个验证码的特征及其准确性


非常感谢

如果你想从代码中使用他们的实时站点,我想你说的是屏幕擦伤。我强烈建议查看(可通过nuget获得)。这将允许您将DOM读入应用程序中,然后按照自己的意愿与之交互。

telerik上有此功能。这里是一些我在过去某个时候为您的情况定制的示例代码。只需将其放在一个类中,忽略类容器,因为它可以提升格式

protected static Manager _manager = null;
    protected static Manager _manager = null;
    protected Browser _main;
    protected Find _find;
public WebAiiAutomater() 
{
    if (_manager != null)
    {
        foreach (var broswer in _manager.Browsers)
        {
            broswer.Close();

        }
        return;
    }

    var settings = new Settings(BrowserType.InternetExplorer, @"c:\log\") { ClientReadyTimeout = 60 * 1000 };

    _manager = new Manager(settings);
    _manager.Start();
    _manager.LaunchNewBrowser();
    _manager.ActiveBrowser.AutoWaitUntilReady = true;

    _main = _manager.ActiveBrowser;
    _find = _main.Find;
    _main.NavigateTo(@"http://goldbach.cse.psu.edu/s/captcha/");
    //start looping over your alogrithm trying different x,y coords against ClickImage(x,y
}

public bool ClickImage(int x, int y)
{
    //var beginsearch = _find.ById("captcha_img"); //this should get you the image, but you don't need
    _manager.Desktop.Mouse.Click(MouseClickType.LeftClick, x, y);
    Thread.sleep(1000); //wait for postback - might be handled internally though
    var errordiv = _find.ById("error");

    return errordiv !=null;
}

如果您能够直接在该页面上执行JavaScript,则此代码将执行以下操作:

submitClick(document.getElementById("img").value, x, y, "tiled");
否则,点击此url,用您自己的值替换
id
x
y


解析响应-如果坐标正确,响应将包含“步骤2”。如果没有,响应将包含“步骤1”,并且将有一个

这可能是一个愚蠢的答案,但是如果您试图模拟鼠标单击并确定是否成功,为什么不使用录制脚本/编写“您自己的”呢


然后你可以有一个测试套件来测试你的各种不同的验证码。。。。希望这能达到你的目的….

你能从我的角度给我一些例子吗?问题是,通过代码执行一些用户操作。如上所述,你能在这里给我一些明确的帮助吗?我将如何更改此代码以模拟给定URL的鼠标单击添加了您的注释,并且我相当确定此验证码可以通过蛮力解决。如果你在第二页上注释错误,他们可以通过让你回到开头来增加时间。如果它们有动态ID、类和随机的伪元素,那么就更难了。太棒了。