Simonetos The Greek Ответов: 1

Как скачать файл на HTML нажатием кнопки с помощью geckowebbrowser (v45.0.34.0)?


Я работаю над одним проектом. VB.NET проект и использование GeckoWebBrowser контроль (v45.0.34.0), я пытаюсь скачать файл с web-страница на HTML кнопка щелчок. Мне удалось загрузить страницу, найти кнопку, но когда мой код "нажимает" на нее, я ничего не получаю!!! Нужно ли мне создавать для этого какое-то "дополнительное" событие? Разве это не работает так же, как веб-браузер Visual Studio? Кроме того, я не могу найти учебники в интернете о GeckoWebBrowser!!! Если у вас есть какие-то ссылки, я буду очень благодарен...

PS: все в порядке, если у вас есть какой-либо пример на C#, я могу его преобразовать.

Что я уже пробовал:

Imports Gecko

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        GeckoWebBrowser1.Navigate("http://mywebpage.com/download.html")
    End Sub

    Private Sub GeckoWebBrowser1_DocumentCompleted(sender As Object, e As Events.GeckoDocumentCompletedEventArgs) Handles GeckoWebBrowser1.DocumentCompleted

        Dim _Elements As GeckoElementCollection = GeckoWebBrowser1.Document.GetElementsByTagName("input")
        For Each _Element As GeckoHtmlElement In _Elements
            Dim _value As String = _Element.GetAttribute("value")
            If _value IsNot Nothing AndAlso _value <> "" AndAlso _value.Contains("Download") Then
                _Element.Click()
            End If
        Next
    End Sub
End Class

Member 13981933

У меня тоже точно такая же проблема. Вы нашли какое-нибудь решение??

1 Ответов

Рейтинг:
0

DanCaraca

Попробуйте это (в C#)



LauncherDialog.Download += new EventHandler<LauncherDialogEvent>(LauncherDialog_Download);

private void LauncherDialog_Download(object sender, LauncherDialogEvent e)
{
    var saveFileDialog1 = new SaveFileDialog();

    saveFileDialog1.Filter = "All files (*.*)|*.*";
    saveFileDialog1.FilterIndex = 2;
    saveFileDialog1.RestoreDirectory = true;
    saveFileDialog1.FileName = e.Filename;

    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        nsILocalFile objTarget = Xpcom.CreateInstance<nsILocalFile>("@mozilla.org/file/local;1");
        using (nsAString tmp = new nsAString(saveFileDialog1.FileName))
        {
            objTarget.InitWithPath(tmp);
        }
        e.HelperAppLauncher.SaveToDisk(objTarget, false);
    }
}