WebBrowser上传文件 - 选择文件对话框问题

时间:2014-04-09 20:37:07

标签: c# webbrowser-control

我有一个win表单应用程序,我在应用程序中打开webBrowser。我必须使用浏览器,因为我正在自动化网站的实际浏览器UI流程。我试图上传一个文件。输入元素类型是“file”,正如我所发现的,以编程方式填充它的唯一方法是点击浏览按钮并从“选择要上载的文件”对话框中选择实际文件。

我找到了关于这个主题的有用答案: Uploading Files Not Working - Need Assistance

我尝试使用上述解决方案,但我的代码不会超出file.InvokeMember("Click");。基本上,一旦打开“选择要上载的文件”对话框,代码就会暂停并等待对话框关闭。我不知道怎么从这里开始。非常感谢有关这方面的帮助,也许是处理<input type="file"..."元素的更好建议。

1 个答案:

答案 0 :(得分:0)

我希望以下答案对您有所帮助。向表单添加计时器控件。 在将click事件调用到上载文件对话框之前,请启动计时器。

select count(1) as total_record 
from sms_allocation 
left join sms_api_definition on sms_allocation.sms_api_definition_id = sms_api_definition.sms_api_definition_id 
where if(('1' = 1 || '4,26,28,31,32,33,37,41,53,56,58,62,63,66,71,72,73,75,76,77,81' = 81 || '4,26,28,31,32,33,37,41,53,56,58,62,63,66,71,72,73,75,76,77,81' = 82), 
      if('0'!='0',reseller_id in (
        select reseller_id 
        from sms_allocation 
        where reseller_id in (0)),reseller_id in (
          select reseller_id 
          from sms_allocation)
        ), reseller_id in (
          select reseller_id 
          from sms_allocation 
          where reseller_id in (0)) and sms_allocate_to='Company');

在计时器刻度事件中添加以下编码

timer1.Interval = 3000;
timer1.Start();
file.InvokeMember("Click");