我们希望自动化网站中的某些任务,例如让用户“登录”、执行某些功能、读取他们的帐户历史记录等。
我们已经尝试用普通的 POST/GET 来模拟这个,但是问题是,例如对于“登录”,网站使用 javascript 代码来执行 AJAX 调用,并且还会生成一些随机 token 。
是否可以从字面上模拟网络浏览器?例如:
- 访问“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);
最佳答案
例如,您可以在 C# 中使用 Selenium。有个很好的教程:Data Driven Testing Using Selenium (webdriver) in C# .
关于c# - 在 C#/.Net 中以编程方式模拟浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17215485/