网页自动化、网页自动登录、自动提交、秒杀、抢车票等
之前写过一篇文章,测评了winform下各种浏览器内核的性能和功能。C#Winform下使用WebKit、Geckofx、CefSharp心得 - 小噜嘟 - 博客园 (cnblogs.com)
其实研究内核无非也就是因为想要操作网页、爬虫这类行为。很少有人真的用这个内核去开发一个浏览器吧。然而在我写python爬虫的时候突然发现了selenium这个东西的存在,就想着试试看在C#里有没有,结果还真的有。
1.Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等。这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本。
在NuGet下面可以直接搜到Selenium.RC,他支持的内核也有好多Chrome、IE、EDGE、FireFox。最近edge封神了,我就用了edge来做项目。
2.除了安装selenium还需要找到webdriver,这个是edge的Microsoft Edge WebDriver - Microsoft Edge Developer。不一样的内核dll不同,不要找错了。
3.启动调试
EdgeDriverService service = EdgeDriverService.CreateDefaultService(Application.StartupPath, "msedgedriver.exe", 8888);//定义端口监控
EdgeOptions options = new EdgeOptions();//设置参数,可以不加
options.AddArgument("--ignore-certificate-errors");//可以不加
options.AddArgument("--ignore-ssl-errors");//可以不加
driver = new EdgeDriver(service, options);
driver.Url = "https://store.steampowered.com/login/";//打开的网址
4.模拟登陆
driver.FindElementById("input_username").SendKeys("jyong0718");//用F12找到用户名的ID并输入
driver.FindElementById("input_password").SendKeys("********");//用F12找到密码的ID并输入
driver.FindElementByClassName("login_btn").Click();//点击登录按钮
5.演示效果
简简单单10行代码,即可完成一个登录操作。换做其他抢票、秒杀也是一样的道理,直接找到下单按钮的ID,写一个死循环的点击即可。或者想要更快的话,抓取post的数据,循环post也是可以的。
技术QQ 1124391467