Hallo Freunde der Sonne,
ich benötige mal wieder Unterstützung
ich habe eine kleine vb.net anwendung geschrieben, die via Internet Explorer eine Suchmaske ausfüllen soll.
Das klappt auch mehr oder weniger hervorragend.
Mein Problem, ist das klicken eines Buttons. Und zwar des Such-Buttons.
Hier ist der relevante Code-auszug:
lblstatuscompanycode.Text = "true" Dim oIE As Object = Nothing Dim wc As New WebClient Dim name As String = "ctl00_PlaceHolderTitleBar_PlaceHolderSearchArea_GlobalSearch_ctl00_searchButtonID" Name = TextBox1.Text oIE = CreateObject("InternetExplorer.Application") ' IE sichtbar machen und URL laden oIE.Visible = True ' Login-Seite laden oIE.Navigate2("https:/Webseite.com/Ilogin") ' kurz warten System.Threading.Thread.Sleep(7000) ' Login-Formular ausfüllen With oIE.Document.Forms(0) .Elements("ctl00_PlaceHolderMain_PersonList_PersonListView_listViewSearchControl_ctl00_searchContentTextBoxID").Value = Name
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Bis hierhin funktioniert alles. Ich weiß....System.Threading.Thread.Sleep(7000) ist nicht die schönste Möglichkeit auf das Laden des Browsers zu warten. Aber es ist erstmal nur zu Testzwecken.
Jetzt kommen wir zu meinem Problem. Dem abschicken.
Mein Code ist folgender:
' Formular abschicken
.Elements("ctl00_PlaceHolderMain_PersonList_PersonListView_listViewSearchControl_ctl00_searchButtonID").value()
.click()
End With
End Sub
Das funktioniert nicht.
Ich habe auch schon vieles andere versucht.
Der HTML Quellcode sieht folgendermaßen aus:
<td valign="bottom" colspan="1"><span class="ms-siteaction">Search for:</span></td><td valign="bottom"><span class="ms-siteaction" style="margin-left: 7px;">Search within:</span></td> </tr><tr valign="top"> <td><div class="searchBoxExternalContainer"><div class="searchBoxContainer"><input name="ctl00$PlaceHolderMain$PersonList$PersonListView$listViewSearchControl$ctl00$searchContentTextBoxID" type="text" id="ctl00_PlaceHolderMain_PersonList_PersonListView_listViewSearchControl_ctl00_searchContentTextBoxID" accesskey="S" class="searchBoxInput ms-searchbox" onfocus="addClass(this.parentNode, 'searchBoxInputFocus'); addClass(this.parentNode.parentNode, 'searchBoxInputFocus');" onblur="removeClass(this.parentNode, 'searchBoxInputFocus'); removeClass(this.parentNode.parentNode, 'searchBoxInputFocus')" onkeydown="if(event.which || event.keyCode) {if ((event.which == 13) || (event.keyCode == 13)) {document.getElementById('ctl00_PlaceHolderMain_PersonList_PersonListView_listViewSearchControl_ctl00_searchButtonID').click();return false;}} else {return true};" style="padding-top:3px; padding-left:4px;" /><a id="ctl00_PlaceHolderMain_PersonList_PersonListView_listViewSearchControl_ctl00_searchButtonID" title="Search" href="javascript:__doPostBack('ctl00$PlaceHolderMain$PersonList$PersonListView$listViewSearchControl$ctl00$searchButtonID','')"><img onmouseover="this.src='~/_layouts/images/MSILM2/searchHover.png'" onmouseout="this.src='~/_layouts/images/MSILM2/search.png'" src="../../../_layouts/images/MSILM2/search.png" alt="Search" style="border-width:0px;vertical-align: 11px; margin-left: 4px;" /></a></div></div></td><td><select name="ctl00$PlaceHolderMain$PersonList$PersonListView$listViewSearchControl$ctl00$searchItemListsID" id="ctl00_PlaceHolderMain_PersonList_PersonListView_listViewSearchControl_ctl00_searchItemListsID" accesskey="I" class="searchBoxDropDown searchControlItemList" style="margin-top:2px; margin-left:7px;"> <option selected="selected" value="All Users">All Users</option> </select></td> </tr> </table></span></span></td>
Wisst ihr was ich falsch mache?
Und jetzt kommt mir nicht mit "jaaa, du benutzt VB"
P.S. Einen Webrequest kann ich nicht verwenden weil ich keine Berechtigungen habe externe Programme zu instalieren (zum loggen der sitzungen).
Eine weitere Frage wäre:
Es öffnet sich später ein neues kleines InternetExplorer fenster, welches Informationen und Button enthält.
Das Problem ist, dass ich diesem Fenster der rechte Mausbutton nicht geht ( keine java fehlermeldung wie "rechte Maustaste gesperrt), und ich mir so keinen Quellcode des Fensters anschauen kann.
Wisst ihr wie ich das umgehe um mir den Quellcode trotzdem anzeigen zu lassen?
MfG