Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 22:19

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



autoit frameset und link passt nicht zusammen

Discussion on autoit frameset und link passt nicht zusammen within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Oct 2008
Posts: 38
Received Thanks: 0
autoit frameset und link passt nicht zusammen

hi leute
ich habe ein problem, und zwar will ich für ogame ( ) einen bot mit autoit schreiben. das login klappt anstandslos nur in der darauffolgenden seite hab ich probleme:
diese seite besteht aus einem frameset, dass wiederrum eins beinhaltet usw, ca 5 mal und im "innersten" ist der link den ich anklicken will, in dem fall links im menü den verteidigungsbutton.

Code:
$oFrame=_IEFrameGetCollection ($oIE)
$oLinks = _IELinkGetCollection ($oFrame)

$i = 0
For $oLink In $oLinks
    If StringInStr($oLink.href, "abc") Then ExitLoop
    $i = $i + 1
Next

_IELinkClickByIndex($oFrame, $i)
führt zu folgendem fehler:
IE.au3 V2.4-0 Warning from function _IELinkClickByIndex, $_IEStatus_NoMatch

und
Code:
$a=_IEFrameGetCollection ($oIE)

$i=0
While True
	$i+=1
	$b=deeper($a)
	If $a==$b Then ExitLoop
	$a=$b
	If $i == 1000 Then MsgBox(0,"","hmm")
WEnd

Func deeper($a)
	$b=_IEFrameGetCollection ( $a  )
	If @error <> 0 Then Return $a
	Return $b
EndFunc
führt zu einer endlosschleife.

nun habe ich keine ahnung was ich noch versuchen könnte.

bin für jede hilfe dankbar
ciao
sandra09 is offline  
Old 10/24/2008, 13:27   #2
 
verT!c4L's Avatar
 
elite*gold: 0
Join Date: Aug 2005
Posts: 1,245
Received Thanks: 60
Ganz vergessen, Hallo sandra09! xD
Heißt du wirklich so (also ohne die 09) ?!
------------------------------------------------------------
Du bewegst dich einfach nur auf dem falschen Frame...
Zumindest ist das meine erste Idee dazu ^^

$oFrame müsste ein Array sein, da es mehrere Frames (sofern vorhanden)
aufnehmen müsste.
Demnach musst du nur den richtigen Frame auswählen/ finden.
$oFrame[0] -> müsste den Hauptframe darstellen,
rein hypothetisch müsste dein Frame $oFrame[2] sein.


Edit2:
Sry deine Beschreibung hatte ich falsch verstanden...
wenns 5 mal is, dann:

Demzufolge $oLinks = _IELinkGetCollection ($oFrame[4]).
Alles rein spekulativ...

MfG & schönes Wochenende schon mal.

Edit:
Vlt mal die Dokumentation zu _IEFrameGetCollection ()
anschauen, da sollte beschrieben sein was die Funktion macht.

Edit 2 weiterführend:

Ein Trick wäre hier, das du dir mal eine Funktion machst welche
dir darstellt was du zur Verfügung hast.

Pseudo-Code:
$oFrame=_IEFrameGetCollection ($oIE)
For $x = 0 To UBound($oFrame) - 1
$oLinks = _IELinkGetCollection ($oFrame[$x])
$Liste += $oFrame[$x]+"\n"+$oLinks
next
MsgBox($Liste)

Irgendwie so, dann siehste welcher Frame, welche Links enthält...
zumindest sollte das so in etwa funktionieren ^^

Oder du machst dir eine Pattern-Matching Funktion:

$oFrame=_IEFrameGetCollection ($oIE)
For $x = 0 To UBound($oFrame) - 1
$oLinks="" -> damit die Variable nicht womöglich überladen wird.
$oLinks = _IELinkGetCollection ($oFrame[$x])
If StringInStr($oLink.href, "abc") Then
MsgBox("Link befindet sich in Frame: "+$x)
next
Exit

Oder so ähnlich ^^
Ist jedenfalls wohl etwas bequemer...
verT!c4L is offline  
Old 10/24/2008, 14:01   #3
 
elite*gold: 0
Join Date: Oct 2008
Posts: 38
Received Thanks: 0
hmm danke, das ist ein interessanter ansatz, werde ich die kommenden tage mal ausprobieren :-)

um das mit den frames zu verdeutlichen:
die seite hat ein frameset(1a) darin ein frame(1b)
dieses frame(1b) beinhaltet ein nächstes frameset(2a) mit dem frame darin(2b)
in dem frame(2b) wieder: frameset(3a) und frame (3b)
und das ganze mehrmals....
also um es so zu sagen: ein frame in nem frame in nem frame in nem frame ... :-D

und ne sry ich heiße nicht wirklich sandra, aber namen sind schließlich nur schall und rauch ^^

*** nochmal danke
ciao und schönes wochenende
sandra09 is offline  
Old 10/24/2008, 14:19   #4
 
verT!c4L's Avatar
 
elite*gold: 0
Join Date: Aug 2005
Posts: 1,245
Received Thanks: 60
$oFrame=_IEFrameGetCollection ($oIE)
For $x = 0 To UBound($oFrame) - 1
$i+=1
$Frame_$i=_IEFrameGetCollection ($oFrame[$x])
If $Frame_$i enthält Frames dann
For $y = 0 To UBound($Frame_$i) - 1
$Frame_$i_$i=_IEFrameGetCollection ($Frame_$i[$y])
If $Frame_$i_$i enthält Frames dann
For $z = 0 To UBound($Frame_$i_$i) - 1
$Frame_$i_$i_$i=_IEFrameGetCollection ($Frame_$i_$i[$z])
next
sonst
$oLinks = _IELinkGetCollection ($oFrame_ etc pp[$x]) richtigen werten einsetzen
next
exit


So in etwa, is aber jetzt reine funktionelle Programmierung
könnte man auch schicker verpacken im OOP-Style
mit Schleifchen und so ^^
----------------------------------------------------------------
Hab mir das schon gedacht mit dem Namen :P
verT!c4L is offline  
Old 10/26/2008, 13:09   #5
 
elite*gold: 0
Join Date: Oct 2008
Posts: 38
Received Thanks: 0
hmm du behandelst $Frame als wären sie arrays, sie sind aber objekte.
ich schau mal ob ich enen weg finde ubound() und [] zu ersetzen.

thx ^^
sandra09 is offline  
Reply

« CD Codes II | Proxy »

Similar Threads Similar Threads
passt alles zusammen??
01/13/2008 - Technical Support - 0 Replies
Artikelnummmer Beschreibung 110039792 1024MB DDR2RAM A-DATA PC800 CL5 (2 x) 36,78 € 110052382 Elitegroup NFORCE6M-A Sockel AM2 39,09 € 110043401 AMD Athlon64 X2 3800+ EE tray AM2 2x 2.00 43,89 € 110009344 160GB 3,5" Excelstor ESJ8160SR...
passt alles zusammen??
01/13/2008 - Technical Support - 0 Replies
Artikelnummmer Beschreibung 110039792 1024MB DDR2RAM A-DATA PC800 CL5 (2 x) 36,78 € 110052382 Elitegroup NFORCE6M-A Sockel AM2 39,09 € 110043401 AMD Athlon64 X2 3800+ EE tray AM2 2x 2.00 43,89 € 110009344 160GB 3,5" Excelstor ESJ8160SR...



All times are GMT +1. The time now is 22:19.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.