我们希望自动化网站中的某些任务,例如让用户“登录”、执行某些功能、读取他们的帐户历史记录等。
我们已经尝试使用普通的 POST/GET 来模拟这一点,但问题是,例如对于“登录”,网站使用 javascript 代码来执行 AJAX 调用,并且还会生成一些随机令牌。
是否可以从字面上模拟网络浏览器?例如:
- 访问“www.[test-website].com”
- 填写这些 DOM 项
- DOM 项目 'username' 填写 'testuser'
- DOM 项目 'password' 填写 'testpass'
- 单击'按钮 DOM 项'btnSubmit'
- 访问账户历史
- 阅读 HTML(这样我们就可以解析关于每个不同历史项目的信息)
- ...
上面可以翻译成下面的示例代码:
var browser = new Browser();
var pageHomepage = browser.Load("www.test-domain.com");
pageHomepage.DOM.GetField("username").SetValue("testUser");
pageHomepage.DOM.GetField("password").SetValue("testPass");
pageHomepage.DOM.GetField("btnSubmit").Click();
var pageAccountHistory = browser.Load("www.test-domain.com/account-history/");
var html = pageAccountHistory.GetHtml();
var historyItems = parseHistoryItems(html);