在网页上模拟基于点击的事件

本文关键字:于点击 事件 模拟 网页 | 更新日期: 2023-09-27 18:15:56

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

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

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

有人能告诉我如何在这个链接上发送点值,并得到我是否成功的消息....

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

我问这个只是为了研究这个验证码的特征和它的准确性。

Thanks to lot

在网页上模拟基于点击的事件

如果您能够直接在该页上执行JavaScript,那么下面的代码可以:

submitClick(document.getElementById("img").value, x, y, "tiled");

否则,点击此url,将您自己的值替换为id, xy:

http://goldbach.cse.psu.edu/s/captcha/captcha_controller.php?id=87170& x = 66, y = 149,来源=平铺的

解析响应—如果您的坐标正确,则响应将包含"步骤2"。如果没有,响应将包含"步骤1",并且它将具有<div id="error">

如果您想从代码中使用他们的实时站点,我认为您正在谈论的是屏幕抓取。我强烈建议您查看一下HTML敏捷包(可通过nuget获得)。这将允许你读取DOM到你的应用程序中,然后按照你的意愿与它进行交互。

这可能是一个愚蠢的答案,但如果你试图模拟鼠标点击并找出它是否成功,为什么不使用Selenium浏览器插件来记录你的脚本/编写你自己的。

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

WebAii在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;
}