Beides geht nicht ich mach erstmal eine pause davon mal sehen ob ich es morgen weiter versuche
vielen vielen dank für deine / eure nette hilfte!
Beides geht nicht ich mach erstmal eine pause davon mal sehen ob ich es morgen weiter versuche
vielen vielen dank für deine / eure nette hilfte!
ich wollte da wo URL steht die URL reinschreiben
ja da hast du recht damit kenne ich mich nicht wirklich aus
Wie genau ist das
_IEAttach ( $sString [, $sMode = "title" [, $iInstance = 1]] )
ich will jetzt bei $sMode eine url angeben also wie mache ich das? so:
$oIE = _IEAttach ( $sMode = "URL")
Habe folgendes gemacht:
#include <IE.au3>
MsgBox(0, "Status", "Script Start")
$oIE = _IEAttach("URL", 0, 1, 0)
Local $oDiv = _IEGetObjById($oIE, "uiMainBar_mnuMain_radInnerMenu_m0_m0_m1")
_IEAction($oDiv, "click")
MsgBox(0, "Status", "Script Stop")
Alles anzeigen
Rauskommt der fehler:
==> Incorrect number of parameters in function call.:
$oIE = _IEAttach("https://servicecenter-test.controlware.de/Tools/TicketDetailDialog/TicketDetailDialog.aspx?ticketid=IN1603759", 0, 1, 0)
$oIE = ^ ERROR
Sorry übersehen nach 3 mal testen kam bei allen 3 malen einfach eine 0 raus
Wo soll diese sein?
#include <IE.au3>
_IEErrorNotify(False)
Do
$oIE = _IECreate("https://servicecenter-test.controlware.de/Tools/TicketDetailDialog/TicketDetailDialog.aspx?ticketid=IN1603759")
Until IsObj($oIE)
FileWrite("debug.html", _IEDocReadHTML($oIE))
$oColl = _IETagNameGetCollection($oIE, "iframe")
For $oObj In $oColl
ConsoleWrite($oColl.src & @CRLF)
Next
Nope
==> Variable must be of type "Object".:
For $oObj In $oColl
For $oObj In $oColl^ ERROR
der link:
Der fehler:
==> Variable must be of type "Object".:
For $oObj In $oColl
For $oObj In $oColl^ ERROR
iframe Count: 1
a Count: 1
Tag Count: 1
#include <IE.au3>
_IEErrorNotify(False)
Do
$oIE = _IECreate("")
Until IsObj($oIE)
Sleep(10000)
$oColl = _IETagNameAllGetCollection($oIE)
For $oObj In $oColl
If $oObj.TagName = "iframe" Then ConsoleWrite("iframe gefunden" & @CRLF)
If $oObj.Id = "uiMainBar_mnuMain_radInnerMenu_m0_m0_m1" Then ConsoleWrite("uiMainBar gefunden" & @CRLF)
Next
_IEQuit($oIE)
Alles anzeigen
==> Variable must be of type "Object".:
For $oObj In $oColl
For $oObj In $oColl^ ERROR
Also ja die seite öffnet sich und alles wird normal gestartet.
#include <IE.au3>
_IEErrorNotify(False)
Do
$oIE = _IECreate("")
Until IsObj($oIE)
$oColl = _IETagNameAllGetCollection($oIE)
Sleep(10000)
For $oObj In $oColl
If $oObj.TagName = "iframe" Then ConsoleWrite("iframe gefunden" & @CRLF)
If $oObj.Id = "uiMainBar_mnuMain_radInnerMenu_m0_m0_m1" Then ConsoleWrite("uiMainBar gefunden" & @CRLF)
Next
_IEQuit($oIE)
Alles anzeigen
Ich habs so gemacht und es kommt immernoch der gleiche fehler nur das jetzt ein kleiner sleep dabei ist
immernoch der gleiche fehler
Langt das oder brauchst du mehr? :3
Mach ich
Es wird mit Ajax und viel Javascript gearbeitet also gehe ich mal davon aus das es tatsächlich in einem Frame drinne liegt, da die Id im Source überhaupt nicht zu sehen ist.
Oder die Id ist auf einem neuen Tab / auf einem neuen Fenster und du hantierst mit der falschen Id herum.
Die ID ist in einem Knopf zum ausdrucken und bei dem kann ich untersuchen finden und dort finde ich die beschriebene Id
Führ das mal aus und poste den Inhalt der Konsole:
AutoIt Alles anzeigen#include <IE.au3> _IEErrorNotify(False) Do $oIE = _IECreate("URL") Until IsObj($oIE) $oColl = _IETagNameAllGetCollection($oIE) For $oObj In $oColl If $oObj.TagName = "iframe" Then ConsoleWrite("iframe gefunden" & @CRLF) If $oObj.Id = "uiMainBar_mnuMain_radInnerMenu_m0_m0_m1" Then ConsoleWrite("uiMainBar gefunden" & @CRLF) Next _IEQuit($oIE)
==> Variable must be of type "Object".:
For $oObj In $oColl
For $oObj In $oColl^ ERROR
Dann entferne doch alle relevanten Daten aus der Source. Wir brauchen die Struktur der Seite um die Web-Elemente und deren Anordnung feststellen zu können.
Der Sourcecode ist 1018 zeilen lang aber hier...:
Tut mir leid das darf ich leider nicht da das eine Firmen interne seite ist.
Was braucht ihr denn um mir weiter zu helfen? (evt nur ein teil des source code?)
Im Funktionsaufruf sind alle möglichen Parameter aufgeführt. Sind Parameter mit einem Standardwert vorbelegt (In dieser Funktion sind alle Parameter vorbelegt), braucht man diese nicht angeben, wenn man sie mit dem Standardinhalt aufrufen will.Hier möchtest du aber den 4.ten Parameter ändern, somit musst du alle Parameter davor (auch wenn sie unverändert bleiben) angeben. Dein Aufruf muss also lauten:
$oIE = _IECreate("URL", 0, 1, 0)
Aber ich vermute, dass das auch nichts ändern wird. Das $oIE wird vermutlich existieren - aber nicht sofort der durch das seiteninterne Skript nachzuladene Inhalt.
Versuche es einfach mal mit obigem Aufruf und setze ein Sleep() dahinter, für den Anfang 2000 ms oder 1000 ms. Einfach variieren.
Also ein Fehler weniger!
Danke für die Erklärung für dumme.
#include <IE.au3>
MsgBox(0, "Status", "Script Start")
$oIE = _IECreate("URL", 0, 1, 0)
Sleep(2000)
Local $oDiv = _IEGetObjById($oIE, "uiMainBar_mnuMain_radInnerMenu_m0_m0_m1")
_IEAction($oDiv, "click")
MsgBox(0, "Status", "Script Stop")
Alles anzeigen
Die Fehler:
--> IE.au3 T3.0-2 Error from function _IEGetObById, $_IESTATUS_InvalidObjectType
--> IE.au3 T3.0-2 Error from function _IEAction(click), $_IESTATUS_InvalidDataType
Das im vorigen Post von dir gezeigte Snippet enthält aber gar kein _IELoadWait -
wie kommst du dann zu dem Fehler? - habs gerade gesehen: _IECreate verwendet intern _IENavigate und dieses wiederum bei gesetztem Flag $iWait die Funktion _IELoadWait.In deinem Snippet musst du also das Flag für Wait in _IECreate auf 0 setzen, sonst hast du keinen Unterschied zu _IELOadWait!_IELoadWait ist auch nicht immer tauglich, sagt dir auch die Hilfe dazu:
Vielen Dank für die ausführliche hilfe.
Ich fühle mich wie der dümmste mensch der Welt aber könntest du mir sagen wie genau ich _IECreate auf 0 setze?
Also ich habe es nun so gemacht:
#include <IE.au3>
MsgBox(0, "Status", "Script Start")
Do
$oIE = _IECreate("URL")
Until IsObj($oIE)
Local $oDiv = _IEGetObjById($oIE, "uiMainBar_mnuMain_radInnerMenu_m0_m0_m1")
_IEAction($oDiv, "click")
MsgBox(0, "Status", "Script Stop")
Alles anzeigen
Leider bekomme ich immer diese fehler:
--> IE.au3 T3.0-2 Error from function _IELoadWait, $_IESTATUS_ClientDisconnected (-2147417848, Browser has been deleted prior to operation.)
--> IE.au3 T3.0-2 Error from function _IEGetObById, $_IESTATUS_InvalidObjectType
--> IE.au3 T3.0-2 Error from function _IEAction(click), $_IESTATUS_InvalidDataType
Ok dann siehts so aus als würde es in einen iframe liegen