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