【问题标题】:Select Input:File programmatically in Webbrowser control VB.net 2010在 Webbrowser 控件 VB.net 2010 中以编程方式选择输入:文件
【发布时间】:2012-03-11 04:31:35
【问题描述】:

我有一个网站,我通过 WebBrowser 控件通过 VB.Net 2010 填写表单数据。

我能够设置输入值:文本、输入:密码、复选框、选择并能够提交表单。

但我无法以编程方式选择 input:file。我也可以打开 “选择文件”对话框。

如何发送文件名以从 VB.Net 代码中选择并按 OK 按钮?

【问题讨论】:

    标签: vb.net browser webbrowser-control


    【解决方案1】:

    我很确定这是一项浏览器安全功能,可防止恶意网站将随机文件从用户网站自动上传给自己。考虑一下,如果任何网站可以在用户没有任何明确操作的情况下从用户的计算机上提取任意文件,那将是多么危险。

    您最好的选择可能是转储 Web 浏览器控件,因为它会将您限制在其安全模型中。而是考虑直接获取网页并在您的应用程序中发布响应。

    以下 .NET 命名空间应该会派上用场:
    System.Net.HTTPWebRequest
    System.Net.TTPWebResponse

    【讨论】:

    • 嗨,约翰,我同意你的看法。但它与 JS 无关。这是 VB.net,我们可以在其中处理窗口并可以自动化任何我们可以做的事情。我正在寻找的唯一解决方法是,1.如何找到打开的文件对话框窗口 2.通过向窗口发送消息来选择文件 3.关闭对话框但我不知道如何通过代码实现这一点。
    • 我认为浏览器控件会在这里杀死你。通过使用它,您将自己限制在其安全模型中。您是否考虑过直接阅读网页并发布应用程序的响应?我更新了我的答案以包含这种方法。
    • 但我没有一个表格。我有一系列页面,在登录系统后一一打开。所以不按顺序发布数据是不可能的。
    • 我建议您使用 HTTPWebResponse 类来读取页面的内容,然后使用 HTTPWebRequest 回发数据,从而绕过浏览器控件的需要,因为浏览器控件会阻止您的请求安全。
    • 但有些页面只有 javascript 来发布数据,因为它们在打开页面时使用令牌。您是否有一个示例,我可以研究并尝试是否可以进行请求-响应交互序列。
    猜你喜欢
    • 2011-04-24
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 2011-12-15
    相关资源
    最近更新 更多