Войдите в систему, чтобы слайдшер
Я пытаюсь создать инструмент для управления несколькими учетными записями Slideshare. Довольно утомительно входить и выходить из каждого из них вручную, поэтому я решил создать простой веб-браузер, который будет выполнять вход для меня.
Проблема в том, что, когда я пытаюсь нажать кнопку входа в систему, он говорит мне, что "поля должны быть заполнены" (и они есть), затем, когда я фокусирую элемент управления и пытаюсь нажать кнопку входа в систему вручную (из элемента управления веб-браузера), я говорю мне что это "недопустимая комбинация имени пользователя и пароля"
Я даже сделал еще один шаг вперед, удалил текст из входных данных и вставил те же самые из текстового файла, но появляется тот же массаж "недопустимый пользователь / проход".
Когда я пытаюсь сделать это вручную из реального браузера IE, он без проблем входит в систему. Понятия не имею, что я делаю не так. Вот код:
Private Sub targetSlideshare()
Dim details() As String
details = accounts(currentAcc).Split(":")
user = details(0)
pass = details(1)
Label19.Text = (currentAcc + 1).ToString + "/" + accounts.Length.ToString
status = "Logout"
Label20.Text = status
loaded2 = False
WebBrowser2.Navigate("https://www.slideshare.net/logout")
While loaded2 = False
Threading.Thread.Sleep(1000)
End While
Threading.Thread.Sleep(1000)
status = "Logging In"
Label20.Text = status
loaded2 = False
WebBrowser2.Navigate("https://www.slideshare.net/login")
While loaded2 = False
Threading.Thread.Sleep(1000)
End While
Threading.Thread.Sleep(5000)
End Sub
Private Sub WebBrowser2_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser2.DocumentCompleted
If WebBrowser2.ReadyState <> WebBrowserReadyState.Complete Then
Exit Sub
End If
If status = "Logout" Then
loaded2 = True
ElseIf status = "Logging In" Then
WebBrowser2.Document.GetElementById("user_login").SetAttribute("value", user)
'WebBrowser2.Document.GetElementById("user_login").SetAttribute("placeholder", Nothing)
WebBrowser2.Document.GetElementById("user_password").SetAttribute("value", pass)
'WebBrowser2.Document.GetElementById("user_password").SetAttribute("placeholder", Nothing)
Dim allelements As HtmlElementCollection = WebBrowser2.Document.All
For Each webpageelement As HtmlElement In allelements
If webpageelement.GetAttribute("value") = "Login" Then
status = "Loading"
webpageelement.InvokeMember("click")
End If
Next
loaded2 = True
End Sub
1 ответ
Я не могу попасть на этот сайт с того компьютера, на котором я сейчас нахожусь, но мне нужно войти в Google:
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
WebBrowser1.Navigate("https://accounts.google.com/ServiceLogin?hl=en&continue=https://www.google.com/")
End Sub
Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
WebBrowser1.Document.GetElementById("Email").InnerText = user.ToString
WebBrowser1.Document.GetElementById("Passwd").InnerText = pass.ToString
WebBrowser1.Document.GetElementById("signIn").InvokeMember("click")
End Sub
Еще один трюк, который может быть полезен:
Я обнаружил, когда у меня возникают проблемы со входом в систему через веб-браузер на некоторых сайтах для настольных компьютеров, когда я пытаюсь автоматизировать вход в систему с помощью мобильной версии, например: https://www.slideshare.net/mobile/login иногда работает.