Internet Explorer Automation

03/28/2011 17:44 chillmastor#1
hey leute^^

wollte mich mal an einen Browsergamebot rantrauen und habe deswegen erstmal versucht einen Script zu erstellen, welcher sich automatisch bei Youtube einloggt.

Das ganze soll nicht über packets gehen, aber auch nicht über mousclicks.
Also einfache IE Automation.

Habe dann einen Script zusammengeworfen, jedoch klaptt der bei mir einfach nicht ... Habe keine Ahnung warum.

Ein Thanks für den, der mir als erstes eine Lösung für das Problem postet :D
Hier der Source Code: Finde den Fehler xD
PHP Code:
#include <IE.au3>
Global $pw "---" hier setzt ihr das YT PW ein

$kanal 
InputBox("Kanal""Bitte Kanal eingeben")
$oIE _IECreate("https://www.youtube.com")
_IELoadWait($oIE)
Global 
$mail "---" hier setzt ihr euren YT namen ein
login
()


Func login()
    
_IENavigate($oIE"https://www.google.com/accounts/ServiceLogin?uilel=3&service=youtube&passive=true&continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26nomobiletemp%3D1%26hl%3Dde_DE%26next%3D%252Fuser%252FHaterMakeMeFamer&hl=de_DE&ltmpl=sso")
    
_IELoadWait($oIE)
    
Sleep(Random(120200))
    
$oForm _IEFormGetCollection($oIE0)
    
$oUsername _IEFormElementGetObjByName($oForm"Email")
    
$oPassword _IEFormElementGetObjByName($oForm"Passwd")
    
_IEFormElementSetValue($oUsername$mail)
    
_IEFormElementSetValue($oPassword$pw)
    
$oLogin _IEFormElementGetObjByName($oForm"signIn")
    
_IEAction($oLogin"click")
    
_IELoadWait($oIE)

EndFunc   ;==>login 
03/28/2011 19:00 h0fi00#2
Bitte!

Code:
#include <IE.au3>
Global $pw = "---" ; hier setzt ihr das YT PW ein

$kanal = InputBox("Kanal", "Bitte Kanal eingeben")


Global $mail = "---" ; hier setzt ihr euren YT namen ein
login()


Func login()
	$oIE = _IECreate("https://www.youtube.com")
	_IELoadWait($oIE)
    _IENavigate($oIE, "https://www.google.com/accounts/ServiceLogin?uilel=3&service=youtube&passive=true&continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26nomobiletemp%3D1%26hl%3Dde_DE%26next%3D%252Fuser%252FHaterMakeMeFamer&hl=de_DE&ltmpl=sso")
    _IELoadWait($oIE)
    Sleep(Random(120, 200))
    $oForm = _IEFormGetCollection($oIE, 0)
    $oUsername = _IEGetObjByName($oForm, "Email")
    $oPassword = _IEGetObjByName($oForm, "Passwd")
    _IEFormElementSetValue($oUsername, $mail)
    _IEFormElementSetValue($oPassword, $pw)
    $oLogin = _IEgetObjByName($oForm, "signIn")
    _IEAction($oLogin, "click")
    _IELoadWait($oIE)

EndFunc   ;==>login
03/28/2011 19:04 chillmastor#3
HAMMA - MÄßIG^^

okay ich gebs zu ICH BIN DUMM xD
Naja ich denke das passiert jedem mal.

Naja danke dass du den Fehler gefunden hast :D

EDIT: Habe leider doch noch ein Problem ;(
Möchte dass der einen Kanal abboniert , jedoch hat der abbo button keine Infos die ich verwenden kann -.-
Viellehct kan einer von euch hiermit was anfange und mir sagen welcher AutoIT Befehl damit was machen kann^^

HTML Code:
<button type="button" class="subscribe-button yt-uix-button yt-uix-button-urgent yt-uix-tooltip" onclick=";return false;" title="Klicke hier, um bei neuen Videos auf diesem Kanal benachrichtigt zu werden." data-loaded="true" data-button-action="yt.www.subscriptions.button.toggleMenu" role="button" aria-pressed="false"><span class="yt-uix-button-content">Abonnieren</span></button>

mfg
03/28/2011 20:44 h0fi00#4
probiers mal mit
_IELinkClickByText
03/28/2011 20:50 chillmastor#5
Quote:
Originally Posted by h0fi00 View Post
probiers mal mit
_IELinkClickByText
geht leider nicht :(
Ich denke mal das liegt daran , dass der Button kein normaler Text-Link ist.
Dummerweise aber auch kein Bild. Deswegen bin ich hier ein wenig überfordert ;(

trotzdem danke für den tipp^^
03/28/2011 21:28 BlackHybrid#6
Hiermit sollte es eigentlich gehen
PHP Code:
_IEFormSubmit() 
03/28/2011 21:38 chillmastor#7
Quote:
Originally Posted by BlackHybrid View Post
Hiermit sollte es eigentlich gehen
PHP Code:
_IEFormSubmit() 
auch nicht :facepalm:
Ich bekomme immer diesen error: --> IE.au3 V2.4-0 Error from function _IEFormSubmit, $_IEStatus_InvalidObjectType

Und ich benutzte diesen Code:

PHP Code:
#include <IE.au3>
$kanal InputBox("Kanal""Bitte Kanal eingeben")

Global 
$mail "---" hier setzt ihr euren YT namen ein
Global $pw "---" hier setzt ihr das YT PW ein
Global $oIE _IECreate("https://www.youtube.com")


_IELoadWait($oIE)
_IENavigate($oIE"https://www.google.com/accounts/ServiceLogin?uilel=3&service=youtube&passive=true&continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26nomobiletemp%3D1%26hl%3Dde_DE%26next%3D%252Fuser%252FHaterMakeMeFamer&hl=de_DE&ltmpl=sso")
_IELoadWait($oIE)
Sleep(Random(120200))
$oForm _IEFormGetCollection($oIE0)
$oUsername _IEGetObjByName($oForm"Email")
$oPassword _IEGetObjByName($oForm"Passwd")
_IEFormElementSetValue($oUsername$mail)
_IEFormElementSetValue($oPassword$pw)
$oLogin _IEgetObjByName($oForm"signIn")
_IEAction($oLogin"click")
_IELoadWait($oIE)
_IENavigate($oIE$kanal)
_IELoadWait($oIE)
_IEFormSubmit($oIE
03/28/2011 21:47 BlackHybrid#8
Du musst auch die Neue Collection holen da er noch die vom Einloggen benutzt.
03/28/2011 21:53 chillmastor#9
Quote:
Originally Posted by BlackHybrid View Post
Du musst auch die Neue Collection holen da er noch die vom Einloggen benutzt.
Oh das wusste ich gar nicht^^
Dachte das Submit hat überhaupt keinen Bezug zu der Collection

Naja geht leider trotzdem nicht -.-
Hast du den Script denn mal getestet ? O.o


Also hier ist jetzt der neue Script:

PHP Code:
#include <IE.au3>
$kanal InputBox("Kanal""Bitte Kanal eingeben")

Global 
$mail "---" hier setzt ihr euren YT namen ein
Global $pw "---" hier setzt ihr das YT PW ein
Global $oIE _IECreate("https://www.youtube.com")


_IELoadWait($oIE)
_IENavigate($oIE"https://www.google.com/accounts/ServiceLogin?uilel=3&service=youtube&passive=true&continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26nomobiletemp%3D1%26hl%3Dde_DE%26next%3D%252Fuser%252FHaterMakeMeFamer&hl=de_DE&ltmpl=sso")
_IELoadWait($oIE)
Sleep(Random(120200))
$oForm _IEFormGetCollection($oIE0)
$oUsername _IEGetObjByName($oForm"Email")
$oPassword _IEGetObjByName($oForm"Passwd")
_IEFormElementSetValue($oUsername$mail)
_IEFormElementSetValue($oPassword$pw)
$oLogin _IEgetObjByName($oForm"signIn")
_IEAction($oLogin"click")
_IELoadWait($oIE)
_IENavigate($oIE$kanal)
_IELoadWait($oIE)
$oForm _IEFormGetCollection($oIE0)
_IEFormSubmit($oIE
03/28/2011 22:14 BlackHybrid#10
Versuchs mal hiermit
PHP Code:

$oForm 
_IEFormGetObjByName ($oIE"Klicke hier, um bei neuen Videos auf diesem Kanal benachrichtigt zu werden.")
_IEFormSubmit ($oForm
03/28/2011 22:20 chillmastor#11
Quote:
Originally Posted by BlackHybrid View Post
Versuchs mal hiermit
PHP Code:

$oForm 
_IEFormGetObjByName ($oIE"Klicke hier, um bei neuen Videos auf diesem Kanal benachrichtigt zu werden.")
_IEFormSubmit ($oForm

geht leider auch nicht *heul*

Trotzdem danke für die Mühe^^
03/28/2011 22:23 BlackHybrid#12
Oder setzt mal für "Klicke hier...", "Abonnieren" ein.
03/28/2011 22:25 chillmastor#13
Quote:
Originally Posted by BlackHybrid View Post
Oder setzt mal für "Klicke hier...", "Abonnieren" ein.
bekomme wie bei der Variante zuvor nur diese beiden Errors:

--> IE.au3 V2.4-0 Warning from function _IEFormGetObjByName, $_IEStatus_NoMatch
--> IE.au3 V2.4-0 Error from function _IEFormSubmit, $_IEStatus_InvalidDataType
03/28/2011 22:28 BlackHybrid#14
Naja dann schau ich Morgen nochmal binn dann off.
03/31/2011 18:31 chillmastor#15
hab leider immernoch keine lösung gefunden :(

Suche weiterhin jemanden der mir helfen kann^^