我正在编写一个工具来从多个网站获取信息,所有这些都需要我登录。我的正常方法是遵循Fiddler或类似的请求和响应,并遵循直接路径。
然而,感觉有点严格。网站的最小变化可能会破坏我的代码。所以我正在寻找类似无UI浏览器的东西,我可以使用以下方式:
Browser.Load("https://sourceforge.net/account/login.php");
Browser.Document.ElementById("form_loginname").Value = "login";
Browser.Document.ElementById("form_pw").Value = "password";
(Browser.Document.ElementById("login") As WebButton).Click(); // the login button is named "login".
在此代码完成后,我希望看到我将在常规浏览器中获得的页面。
我所描述的内容是否存在?
编辑 - 首选C#支持
答案 0 :(得分:2)
这与Web应用程序的自动化用户测试非常相似,关键区别在于您不拥有经过测试的应用程序。
Selenium是一个流行的图书馆,用于自动驾驶浏览器。如果你想以无头方式使用Selenium运行程序,你可以使用无头X服务器,如Xvfb。关于不使用Xvfb,替代方案有older question。
由于Selenium可以使用各种编程语言驱动许多浏览器,因此我建议您在StackOverflow上探索Selenium标记。
对你来说特别感兴趣的是SimpleBrowser.WebDriver:针对.Net的内存轻量级浏览器的Selenium绑定。实际上,SimpleBrowser可以直接满足您的需求,而不会增加Selenium的复杂性。