Nano Hash - криптовалюты, майнинг, программирование

Как определить, работал ли автоматический вход в элементе управления WebBrowser?

Я использую элемент управления WebBrowser, чтобы определить, использует ли список сайтов заводские имена пользователя и пароли по умолчанию. Однако у меня возникают проблемы, поскольку DocumentCompleted, который я использую для имитации входа в систему, также вызывается после завершения входа в систему.

Кроме того, когда он работает, он зацикливается и дает ложные сообщения о том, что несколько других сайтов имеют логин по умолчанию.

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

По крайней мере, иногда это помогает мне напечатать все и прочитать это на следующий день, и, возможно, мой несколько рабочий источник может помочь кому-то еще в будущем.

Вопросы:

  • Ложные срабатывания после фактического сайта с использованием учетных данных по умолчанию
  • Прекращает обработку, когда страница 404 или загружает непредвиденную страницу

Код:

Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    WebBrowser.Navigate(linqData(i).URL)

End Sub

Private Sub WebBrowser_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser.DocumentCompleted

    ' Check for Default Login
    Login("administrator", "password")

    ' Determine Results
    If WebBrowser.Url.ToString.Contains("index.php") Then
        ' Successfully Logged In
        LogData("Successfully Logged In to " & linqData(i).Name)
        NextSite()
    ElseIf WebBrowser.Url.ToString.Contains("loginfailed.php") Then
        ' Failed to Login
        NextSite()
    End If

End Sub

Sub Login(Username As String, Password As String)
    Dim FoundUsernameTextbox As Boolean = False
    Dim FoundPasswordTextbox As Boolean = False

    Try
        ' Find Username Textbox
        Try
            WebBrowser.Document.GetElementById("nameInput").InnerText = Username
            FoundUsernameTextbox = True
        Catch ex As Exception

        End Try

        ' Find Password Textbox
        Try
            WebBrowser.Document.GetElementById("pass").InnerText = Password
            FoundPasswordTextbox = True
        Catch ex As Exception

        End Try

        ' Find Login Button and Click
        Try
            If FoundUsernameTextbox And FoundPasswordTextbox Then
                WebBrowser.Document.GetElementById("submit").InvokeMember("click")
            End If
        Catch ex As Exception

        End Try

    Catch ex As Exception

    End Try
End Sub

Sub NextSite()

    Try

        i += 1

        If i < linqDataRecordCount Then
            WebBrowser.Navigate(linqData(i).URL)
        Else
            LogData("Finished at " & DateTime.Now)
        End If

    Catch ex As Exception

    End Try

End Sub

Ответы:


1

В DocumentCompleted вы должны проверить, является ли URL-адрес события целевым URL-адресом браузера. Это гарантирует, что код вызывается один раз после полной загрузки страницы.

Кроме того, вы вызываете Login, но затем снова переходите к коду, который имеет дело с браузером. Это может привести к нежелательному поведению. Вместо этого вы должны иметь Else и попробовать войти там.

If e.Url = WebBrowser.Url Then    
    ' Determine Results
    If WebBrowser.Url.ToString.Contains("index.php") Then
        ' Successfully Logged In
        LogData("Successfully Logged In to " & linqData(i).Name)
        NextSite()
    ElseIf WebBrowser.Url.ToString.Contains("loginfailed.php") Then
        ' Failed to Login
        NextSite()
    Else
        Login("administrator", "password")
    End If
End If

Также было бы неплохо сделать Логин булевой функцией. Если ему не удается найти элементы входа для вызова, верните false и либо повторите попытку, либо перейдите на следующий сайт.

07.09.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..