【问题标题】:How to enter data into ASPX controls programmatically如何以编程方式将数据输入 ASPX 控件
【发布时间】:2013-11-26 23:55:32
【问题描述】:

在工作中,我的任务是编写一个不断尝试登录我们网页的工具。

我被明确告知不要使用我们的网络服务来执行此操作,而是要像用户一样实际填写页面。

该页面是一个 ASPX 页面,并且所有控件都在服务器端运行。提交按钮调用的是服务端方法,并不像这样简单:

www.website.com/login.aspx?username=x&password=x.

POST: www.website.com/login.aspx
<login>
    <username>x</username>
    <password>x</password
</login>

我的想法是使用 WinForms 中内置的 Web 浏览器控件,但这似乎不是最好的方法?

我该怎么办?

注意:这是我们的网站,所以不需要是通用的,我可以硬编码表单控件的名称。

public bool Login(string url, string username, string password)
{
}

【问题讨论】:

  • QueryString 中的 password 太甜了。
  • 如果它只是在查询字符串中不安全地使用用户名和密码调用网站,只需执行http get
  • 不是,文本框和按钮都是服务器端的,没那么简单
  • 我的错,我没看到。
  • 如果你想做自动化测试,你应该看看selenium

标签: c# asp.net winforms forms http


【解决方案1】:

我实际上是在 2 天前使用命令行工具完成的。

我使用了来自 .net 测试自动化配方的代码,所以我不能在这里发布它,但你基本上是创建一个网络客户端,然后假装来自网络浏览器发送请求。

事实上 system.net webclient 类有一个很好的 sample code 也看看 HttpWebRequest Class 这可能会有所帮助

如果您想通过 post 方法发送内容,请将您的 webrequest 转换为这样的 httwebrequest

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.method = "POST"

如果你也需要传入视图状态,这很痛苦。这应该让你开始。

【讨论】:

  • 看起来这不是 OP 正在寻找的。没有帖子或 URL 参数可将数据导入页面。必须将用户名和密码填入页面中的字段,然后单击。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多