Объект требуется, но объект существует - PullRequest
0 голосов
/ 13 апреля 2019

Это сработало пару раз, я дал его своему другу, и он начал получать сообщение об ошибке в строке 68. Требуется объект.

Line:68
Char: 2
Error: Object required: 'document.all.item(...)'
Code: 800a01a8
Source: VBScript runtime error

Требуется веб-сайт для запроса песен и спама в запросах. У меня есть разрешение на это. Ошибка не произошла, но теперь это так. Visual Studio полностью обновлена. Я на Windows 10. Это сработало, но теперь выдает эту ошибку.

Я уже пробовал обновлять windows и visual studio. Также запуск его в командной строке не дал никакой информации.

Option Explicit

Dim browser,x,loginpass,datem,dated,datey,nameArr,numberOfRequests,artistName,songName

set x = CreateObject("wscript.shell")
'Random init shit'
loginpass = "space"
datem = 5
dated = 4
datey = 2019
'Fill this array with names, and it will loop through all of them when you run it.'
nameArr = Array("Becka","Kelly","Jake","Joseph")
'This will control how many times the selected song is voted for'
numberOfRequests = 5
'What is your song pick?'
artistName = "PinkFong"
songName = "Baby Shark"


Dim ree
ree=msgbox("You selected " & songName & " by " & artistName & ". If that is not correct, click no.", 4096+64+4, "Reeee, make sure you don't request the wrong shitty song!")
If ree = vbNo Then
    WScript.Quit
End If  


Dim name
For Each name in nameArr 'name loop'
    'initialize the browser in the most basic form'
    set browser = createobject("internetexplorer.application")
    browser.statusbar = false
    browser.menubar = false
    browser.toolbar = false
    browser.Width = 1360
    browser.Height = 768
    browser.top = 100
    browser.Left = 100
    browser.Resizable = 0
    browser.visible = true

    'navigate to the login website with the specified djidnumber'
    x.AppActivate "Internet Explorer"
    browser.navigate([sitenameredacted])
    do while browser.busy
        wscript.sleep(100)
    loop

    'input the date and password into the fields provided'
    browser.document.all.item("password").value = loginpass
    browser.document.all.item("month").value = datem
    browser.document.all.item("day").value = dated
    browser.document.all.item("year").value = datey
    wscript.sleep(500) 'This is line 61'
    x.SendKeys "{ENTER}"
    do while browser.busy
        wscript.sleep(100)
    loop

    'Deal with the guestname dialogue befor looping song pick 10 times.'
    browser.document.all.item("guest_name").Click() 'this is the line 68 in question'
    wscript.sleep(500)
    Set x = CreateObject("wscript.shell")
    x.SendKeys name
    wscript.sleep(100)
    x.SendKeys "{ENTER}"
    wscript.sleep(100)

    'Select the button for add your own.'
    browser.Document.getElementByID("addyourown_a").click
    wscript.sleep(100)

    'Loop the song request the number of times given'
    Dim loops
    For loops = 1 to numberOfRequests
        browser.Document.getElementByID("add_your_own_artist_name_id").value = artistName
        browser.Document.getElementByID("add_your_own_song_title_id").value = songName
        For Each btn In browser.Document.getElementsByTagName("input")
            If btn.value = "Save" Then btn.Click()
        Next
        wscript.sleep(100)
    Next

    'Submit requests and then close browser for the next name to start.'
    For Each btn In browser.Document.getElementsByClassName("djep-guestsubmit")
            If btn.href = "javascript:document.ep_form.submit();" Then btn.Click()
    Next

    wscript.sleep(5000)
    browser.Quit

 Next 'name loop'

Я ожидаю, что он установит информацию для входа на сайт, а затем войдет в систему. После этого он вводит имя в списке и подтверждает диалог. Затем он предлагает ту же песню 5 раз. Это работает безупречно, когда я его разделяю.

Когда я добавляю 5-секундное время ожидания к строке 61 вместо 0,5-секундного времени ожидания, ничего не меняется, поэтому я предполагаю, что ошибка выше строки 61.

1 Ответ

0 голосов
/ 13 апреля 2019

Я на самом деле это исправил.Проблема в том, что строка x.SendKeys {ENTER}

Enter фактически не продвигает диалог, поэтому она искала элемент, которого еще не было, guest_name

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...