automatische web anmeldung im browser

S

senso

Aktives Mitglied
Thread Starter
Dabei seit
25.03.2005
Beiträge
101
Reaktionspunkte
0
hallo,

ich habe schon gebastelt, aber ich bekomme es nicht hin!
um das internet zu verwenden, muss ich auf einer login-homepage im browser ein passwort eingeben. anschliessend ist der account dann für eine voreingestellt zeit mit dem web verbunden. die login page wird automatisch geladen sobald der account noch nicht online ist.
ich möchte nun ein apple- oder automator-script schreiben, welches in regelmässigen abständen prüft, ob noch einen internetverbindung besteht. dies könnte z.b. geschehen indem man prüft ob google noch zu erreichen ist. ist das nicht der fall, landet man automatisch auf der login-homepage. für diese würde ich dann gerne noch das passwort hinterlegen damit sich das script automatisch anmelden kann. eine überprüfung könnte dann z.b. alle 15 Minuten erfolgen.

kann mir jemand mitteilen, wie man ein solches script erstellt oder hat jemand so etwas vielleicht schon in anwendung und ich kann es modifizieren?

vielen dank,
senso
 
Hallo,

es ist nicht ganz einfach dir da zu helfen, da niemand weiss, wie die Seite genau aussieht, wie die Logindaten übermittelt werden. Ich möchte dir trotzdem mal ein Grundgerüst geben, dass in einer Endlosschleife regelmäßig prüft, ob eine Internetverbindung besteht:

Code:
[FONT="Verdana"][size=2][color=#4C4D4D]--Endlosschleife[/color]
[b]repeat[/b]
	[color=#4C4D4D]--Abfragen, ob online[/color]
	[b]if[/b] [color=#3F7F00]isOnline[/color]() [b]is[/b] [color=#4A1E7F]false[/color] [b]then[/b]
		[color=#4C4D4D]--neu einloggen[/color]
		[color=#4C4D4D]--...[/color]
	[b]end[/b] [b]if[/b]
	[color=#4C4D4D]--60s warten, dann gehts von vorne los[/color]
	[color=#0016B0][b]delay[/b][/color] 60
[b]end[/b] [b]repeat[/b]

[b]on[/b] [color=#3F7F00]isOnline[/color]()
	[b]try[/b]
		[color=#0016B0][b]do shell script[/b][/color] "ping -c1 -t1 8.8.8.8"
		[b]return[/b] [color=#4A1E7F]true[/color]
	[b]on[/b] [b]error[/b]
		[b]return[/b] [color=#4A1E7F]false[/color]
	[b]end[/b] [b]try[/b]
[b]end[/b] [color=#3F7F00]isOnline[/color][/size][/FONT]

Für den Loginteil wäre es interessant zu wissen, ob z.B. der Cursor schon in dem Benutzername-Feld ist, oder vielleicht weisst auch, wie der Login abgeschickt wird.
 
Ich denke, der Login-Teil läßt sich mittels JavaScript und Safari lösen: die JavaScript property die interessiert, ist document.forms[], aber um das scripten zu können, muß man die Seite und das Anmeldeformular kennen.

Ciao
Farid
 
hallo,

hier zur ergänzung mal mein bisheriger versuch. wie gesagt, er macht noch nicht was er soll. irgendwo ist der wurm drin. vor allem müsste ich dem google Fenster auch noch sagen, es möge bitte wieder zu gehen, wenn noch eine internetverbindung besteht, sonst habe ich zum schluss hunderte geöffnete google fenster. ich weiss auch nicht, ob die abfrage von/bei google wirklich notwendig ist, da ich bisher keine andere möglichkeit gefunden habe die internetverbindung zu prüfen. die 'isOnline()' abfrage von pill scheint den port 8.8.8.8 [welcher ist das?] anzupingen um die internetverbindung zu prüfen...

bezüglich der login-seite ist der cursor nach dem aufrufen der seite bereits im login-feld. die eingabe des passwortes erfolgt über die enter taste.

Code:
set mainURL to "http://www.google.de" as text
set loginURL to "http://www.abc.de" as text
set mainPword to "1234" as text

repeat
	if checkweb() is false then
		tell application "Safari"
			activate
			set thisDocument to make new document at end of documents
			do JavaScript "window.open('" & loginURL & "')" in thisDocument
			tell application "System Events"
				tell application process "Safari"
					delay 3
					keystroke mainPword
					keystroke (ASCII character 13)
				end tell
			end tell
		end tell
	end if
	delay 60
end repeat


on checkweb()
	tell application "Safari"
		activate
		set thisDocument to make new document at end of documents
		do JavaScript "window.open('" & mainURL & "')" in thisDocument
	end tell
end checkweb
 
8.8.8.8 ist die IP von Google. Da kannst du auch eine Adresse oder was du willst reinschreiben. Wenn das mit JavaScript nicht klappt, dann probier mal das:

Code:
[FONT="Verdana"][size=2][color=#4C4D4D]--Endlosschleife[/color]
[b]repeat[/b]
	[color=#4C4D4D]--Abfragen, ob online[/color]
	[b]if[/b] [color=#3F7F00]isOnline[/color]() [b]is[/b] [color=#4A1E7F]false[/color] [b]then[/b]
		[color=#4C4D4D]--neu einloggen[/color]
		[b]tell[/b] [color=#0000FF][i]application[/i][/color] "Safari"
			[color=#0000FF][b]activate[/b][/color]
			[color=#0016B0][b]delay[/b][/color] 2
			[b]tell[/b] [color=#0000FF][i]application[/i][/color] "System Events"
				[color=#0000FF][b]keystroke[/b][/color] "Passwort"
				[color=#0000FF][b]keystroke[/b][/color] ([color=#0016B0][b]ASCII character[/b][/color] 13)
			[b]end[/b] [b]tell[/b]
		[b]end[/b] [b]tell[/b]
	[b]end[/b] [b]if[/b]
	[color=#4C4D4D]--60s warten, dann gehts von vorne los[/color]
	[color=#0016B0][b]delay[/b][/color] 60
[b]end[/b] [b]repeat[/b]

[b]on[/b] [color=#3F7F00]isOnline[/color]()
	[b]try[/b]
		[color=#0016B0][b]do shell script[/b][/color] "ping -c1 -t1 8.8.8.8"
		[b]return[/b] [color=#4A1E7F]true[/color]
	[b]on[/b] [b]error[/b]
		[b]return[/b] [color=#4A1E7F]false[/color]
	[b]end[/b] [b]try[/b]
[b]end[/b] [color=#3F7F00]isOnline[/color][/size][/FONT]

Eventuell musst du den delay anpassen. Ist das richtig, dass es nur ein Passwort und keinen Benutzernamen gibt?
 
In einem ähnlichen Script (zum einloggen in den Exchange-Server meiner Firma) benutze ich erfolgreich diesen Code:

PHP:
property user : "'Firmendomain/meinAccount'" -- anpassen
property pass : "'meinPasswort" -- anpassen

tell window 1 of application "Safari"
	activate
	set newTab to (make new tab)
	set current tab to newTab
	set URL of newTab to "https://xxxxxxxxxxxxxxxxxx/" -- anpassen
	delay 5
	-- Textfield 1:
	do JavaScript "document.forms[0].elements[2].value = " & user in document 1
	-- Textfield 2
	do JavaScript "document.forms[0].elements[3].value = " & pass in document 1
	do JavaScript "document.forms[0].submit()" in document 1
end tell

Ciao
Farid
 
Zurück
Oben Unten