#c# #button #browser #submit
#c# #кнопка #браузер #Отправить
Вопрос:
Html-код моей страницы клика является :
<input type="submit" id="publishButton-ns" class="ubtn ubtn-block"
name="publish" tabindex="10" value="Publish Post">
Я попробовал этот код для нажатия:
webBrowser1.Document.GetElementById("publishButton-ns").InvokeMember("click");
но это не нашло кнопку.
Комментарии:
1. Посмотрите на ответ @Ponmalar внизу
Ответ №1:
Это может вам помочь.
<input type="submit" value="Submit" />
HtmlElementCollection elc = this.webBrowser1.Document.GetElementsByTagName("input");
foreach (HtmlElement el in elc)
{
if (el.GetAttribute("type").Equals("submit"))
{
el.InvokeMember("Click");
}
}
Ответ №2:
Вы ждете, пока страница загрузится первой? Вы должны привязать функцию в своем коде, чтобы дождаться загрузки страницы, они нажимают кнопку:
static void form1_Load() {
// ...
webBrowser1.onDocumentReady = webBrowser_DocumentReady;
}
static void webBrowser1_DocumentReady() {
webBrowser1.Document.GetElementById("publishButton-ns").InvokeMember("Click");
}
Ответ №3:
Попробуйте комбинацию предложений @adam и прописных букв Click
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.Document
.GetElementById("ctl00_main_LoginExpoPlanIt_LoginButton")
.InvokeMember("Click");
}
Только что протестировал это, и это не сработало с «click», но сработало с «Click» 🙂
Я использую .net 4
Комментарии:
1. Кнопка все еще не найдена. Ошибка «NullReferenceException»
2. mdmullinax, спасибо за ваш вклад. У меня также не сработало со СТРОЧНОЙ буквой «c» в «click», но ЗАГЛАВНАЯ буква «C» сработала.
Ответ №4:
РЕДАКТИРОВАТЬ: Это применимо только тогда, когда runat="server"
установлено, в данном случае неприменимо, но на всякий случай оставляю для других, приношу свои извинения за отсутствие этого в вопросе.
ASP.Net изменяет название элементов, которые он отображает, на основе структуры, в которой они находятся, вы можете попробовать следующее, чтобы получить окончательное имя элемента:
webBrowser1.Document.GetElementById("<%=publishButton-ns.ClientID%>").InvokeMember("click");
Комментарии:
1. В элементе ввода нет runat =»server», поэтому ASP.NET движок не будет ее трогать.
Ответ №5:
Вы можете использовать jQuery, а затем сделать что-то вроде этого $(«#publishButton-ns»).click();