Отправить веб-форму на GeckoWebBrowser? (GeckoFX)

существует правильный способ отправки веб-формы с помощью GeckoFX библиотеки?

это то, что я делаю, чтобы заполнить веб-форму и отправьте форму, но...ну, я не подаю, я просто нажимаю на последнюю кнопку страницы, и я думаю, что это не может быть правильным способом сделать это...

рамки!--2--> control имеет метод отправки веб-формы, но я не могу найти аналогичный метод для правильной отправки веб-формы на 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 имеет метод отправки.

что-то вроде этого:

(GetElementByTagName("form").First() as GeckoFormElement).submit()

Я могу привести пример в c#:

если вы знаете значение id для входных тегов и кнопки входа в систему, вы можете сделать это:

 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();
                }                    
            }
        }