Mira no te complique más. Como no me rindo facilmente, finalmente encontré la solución . Por lo menos para conseguir pulsar el botón. En cuanto a tu pregunta por lo del servidor, sinceramente no lo se.
Código
Public Class Form1 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load WebBrowser1.ScriptErrorsSuppressed = True WebBrowser1.Navigate("http://www2.yapo.cl/ai/form/7?ca=15_s") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim clElement As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("Input") For Each Element As HtmlElement In clElement Dim controlName As String = Element.GetAttribute("input").ToString If Element.GetAttribute("name").Equals("file") Then Element.InvokeMember("click") End If Next End Sub End Class
Explico como lo he averiguado.
Se me ocurrió que era mejor guardar la página web y luego analizarla. Tras guardarla la he abierto con el vb.net como web y justo donde está el botón hay controles uno encima de otro. Los separé, y conseguí determinar realmente cual es el control a llamar. Para ello guardé los cambios y luego lo abrí con el Google Chrome sin conexión para determinar cual era realmente el que abre el cuadro. No es visible pero se detecta al pasar el ratón porque se pone el dedo. Después le doy con el botón derecho del ratón y hago clic en Inspeccionar y Chrome me muestra el código exácto que hace referencia al mismo.
Código
<input multiple="multiple" type="file" name="file" style="height: 46px; position: absolute; right: 18px; top: 50px; font-family: Arial; font-size: 118px; margin: 0px; padding: 0px; cursor: pointer; opacity: 0; width: 1925px;">
No encontraba el control porque no es visible desde el webbrowser al obtener el código de la página al conectarse online. Si no ubiera guardado la página para analizarla no lo hubiera encontrado.
El control se crea desde un archivo de jscript que se descarga en el caché que se llama ai.js:
Código
e=document.createElement("input");this._options.multiple&&e.setAttribute("multiple","multiple"),this._options.acceptFiles&&e.setAttribute