I have a small project that I'm stuck on.I'm trying to create an app to create Yahoo email accounts. The problem with the code is that the click action generates this error: "Looks like there was some trouble creating your account. Please take a moment to review your answers."
But when I manually click in the webbrowser control it works fine to get to the next page.
Public Class Form1
Dim _maryFirst() As String
Dim _maryLast() As String
Dim _maryZip() As String
Dim _mstrPass As String
Private Sub btnSignup_Click(sender As Object, e As EventArgs) Handles btnSignup.Click
WebBrowser1.Navigate("https://eu.edit.yahoo.com/registration")
WebBrowser1.ScriptErrorsSuppressed = True
_mstrPass = RandomString(10)
End Sub
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
Dim strLastname As String
WebBrowser1.ScriptErrorsSuppressed = True
strLastname = _maryLast(CInt(Int((2323 * Rnd()))))
With WebBrowser1.Document
If .Url.AbsoluteUri = "https://na.edit.yahoo.com/registration?.pd=&intl=us&origIntl=&done=&src=&last=&partner=yahoo_default&domain=&yahooid=&lang=en-US" Then
.GetElementById("firstname").SetAttribute("value", _maryFirst(CInt(Int((810 * Rnd())))))
.GetElementById("secondname").SetAttribute("value", strLastname)
.GetElementById("yahooid").SetAttribute("value", strLastname & CInt(Int((9999 * Rnd()) + 1001)))
.GetElementById("password").SetAttribute("value", _mstrPass)
.GetElementById("passwordconfirm").SetAttribute("value", _mstrPass)
.GetElementById("mm").SetAttribute("value", CInt(Int((12 * Rnd()) + 1)))
.GetElementById("dd").SetAttribute("value", CInt(Int((25 * Rnd()) + 1)))
.GetElementById("yyyy").SetAttribute("value", CInt(Int(((1980 - 1950) * Rnd()) + 1950)))
.GetElementById("gender").SetAttribute("value", "f")
.GetElementById("postalcode").SetAttribute("value", _maryZip(CInt(Int(29469 * Rnd()))))
.GetElementById("IAgreeBtn").InvokeMember("click")
End If
End With
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
_maryFirst = IO.File.ReadAllLines(Application.StartupPath() & "\firstnames.txt")
_maryLast = IO.File.ReadAllLines(Application.StartupPath() & "\lastnames.txt")
_maryZip = IO.File.ReadAllLines(Application.StartupPath() & "\zip.txt")
End Sub
Private Shared Function RandomString(cb As Integer) As String
Randomize()
Dim rgch As String
rgch = "abcdefghijklmnopqrstuvwxyz"
rgch = rgch & UCase(rgch) & "0123456789"
RandomString = ""
Dim i As Long
For i = 1 To cb
RandomString = RandomString & Mid$(rgch, Int(Rnd() * Len(rgch) + 1), 1)
Next
End Function
End Class
Commenting out
.GetElementById("IAgreeBtn").InvokeMember("click")
then run the program and click on the "create my account" button in the web browser control will complete the first page of the process. This tells me that there is an issue with the above line of code that somehow isn't working the same way as manually clicking the button.