Отправить веб-форму на GeckoWebBrowser? (GeckoFX)
Существует правильный способ отправить веб-форму, используя GeckoFX
библиотека?
Это то, что я делаю, чтобы заполнить веб-форму и отправить форму, но... ну, я не отправляю, я просто нажимаю на последнюю кнопку на странице и думаю, что это не может быть Правильный способ сделать это...
фреймворка WebBrowser
элемент управления имеет метод для отправки веб-формы, но я не могу найти аналогичный метод для правильной отправки веб-формы на GeckWebBrowser
,
Dim doc = GeckoWebBrowser1.Document
doc.GetElementById("id_username").
SetAttribute("value", CStr(MyUsername))
doc.GetElementById("id_password").
SetAttribute("value", CStr(MyPassword))
doc.GetElementsByTagName("input").
Last.Click()
2 ответа
GeckoFormElement имеет метод submit.
Так что-то вроде этого:
(GetElementByTagName("form").First() as GeckoFormElement).submit()
Я могу привести пример в C#:
Если вы знаете значение идентификатора для тегов ввода и кнопки входа, вы можете сделать это:
GeckoInputElement username = new GeckoInputElement(geckoWebBrowser1.Document.GetElementById("Username_ID").DomObject);
GeckoInputElement Passwd = new GeckoInputElement(geckoWebBrowser1.Document.GetElementById("passwd_ID").DomObject);
GeckoInputElement Loginbutton = new GeckoInputElement(geckoWebBrowser1.Document.GetElementById("login_button_ID").DomObject);
username.Value = "username";
Passwd.Value = "password";
Loginbutton.Click();
и если вы знаете name
входных тегов, попробуйте это:
GeckoInputElement username = new GeckoInputElement(geckoWebBrowser1.Document.GetElementsByName("email")[0].DomObject);
GeckoInputElement password = new GeckoInputElement(geckoWebBrowser1.Document.GetElementsByName("pass")[0].DomObject);
GeckoInputElement login = new GeckoInputElement(geckoWebBrowser1.Document.GetElemntByName("login_name")[0].DomObject);
username.Value = "username";
password.Value = "password";
login.Click();
и если вы не знаете, id
или же name
входных тегов и имени класса, попробуйте это,
GeckoNodeCollection nod = geckoWebBrowser1.Document.GetElementsByClassName("classname");
foreach (GeckoNode node in nod)
{
if (NodeType.Element == node.NodeType)
{
try
{
GeckoInputElement ele = (GeckoInputElement)node;
ele.Click();
}
catch (Exception ex)
{
string ep = ex.ToString();
GeckoHtmlElement ele = (GeckoHtmlElement)no2;
ele.Click();
}
}
}