Например, используя код и не вводить пользователя, как бы я сделал свою программу, нажмите кнопку "Поиск" в Google (если я уже заполнил поле поиска и нахожусь на google.com)
Как вы нажимаете кнопку в элементе управления веб-браузером?
Ответ 1
webBrowser1.Navigate("http://www.google.com");
Если у вас есть ID
, используйте это:
webBrowser1.Document.GetElementById("id").InvokeMember("click");
Если вы используете TagName
, используйте
webBrowser1.Navigate("http://www.google.com");
В веб-браузере Документированное событие
HtmlElement textElement = webBrowser1.Document.All.GetElementsByName("q")[0];
textElement.SetAttribute("value", "your text to search");
HtmlElement btnElement = webBrowser1.Document.All.GetElementsByName("btnG")[0];
btnElement.InvokeMember("click");
Если у вас есть имя Class
, используйте это:
HtmlElementCollection classButton = webBrowser1.Document.All;
foreach (HtmlElement element in classButton)
{
if (element.GetAttribute("className") == "button")
{
element.InvokeMember("click");
}
}
Чтобы добавить текст в TextBox
для поиска на google.com, используйте это:
webBrowser1.Document.GetElementById("gs_tti0").InnerText = "hello world";
Ответ 2
Попробуйте использовать следующий код:
public WebBrowser webBrowser1 = new WebBrowser();
private void WebForm_Load(object sender, EventArgs e)
{
try
{
webBrowser1.Height = 1000;
webBrowser1.Width = 1000;
this.Controls.Add(webBrowser1);
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);
this.webBrowser1.Navigate("www.google.com.au");
}
catch
{ }
Запишите следующую функцию в форме С#:
public void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var webBrowser = sender as WebBrowser;
webBrowser.DocumentCompleted -= WebBrowser_DocumentCompleted;
HtmlElement textElement = webBrowser.Document.All.GetElementsByName("q")[0];
textElement.SetAttribute("value", "mlm company");
HtmlElement btnElement = webBrowser.Document.All.GetElementsByName("btnG")[0];
btnElement.InvokeMember("click");
}
Ответ 3
В дополнение к использованию InvokeMember
и других, если на вашей веб-странице возникают проблемы при вызове ID
или Class
, вы можете попробовать использовать {TAB}
и {ENTER}
, используя класс SendKeys
внутри. СЕТЬ. Я написал много скриптов для веб-страниц и обнаружил, что мне пришлось использовать комбинацию обоих (даже если SendKeys
намного более беспорядочно, чем методы в ответе @AleWin).