Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

konifer

macrumors newbie
Original poster
Jan 2, 2007
2
0
I'm a total newbie with applescript, and have looked around to try and find an answer to this, as well as tried to find ways around it but am a bit stuck...

I am trying to use an incredibly basic task with applescript, but I can't get it to work...

what I'm trying to do is:

  • go to a specific URL
  • tab down to my username
  • press enter to login (the user and password are saved and are already there, using firefox)

so my code looks like this (I hope I'm doing this right..):

set CR to ASCII character of 13
open location "http://www.myurl.com"
keystroke tab
keystroke CR

However I get an applescript error telling me

Can't make keystroke " " into type reference.

with the "keystroke tab" element highlighted..

what am I doing wrong?
 

HexMonkey

Administrator emeritus
Feb 5, 2004
2,240
504
New Zealand
keystroke is a command in the System Events dictionary so you need to embed it in a tell application "System Events" block.

The other problem you might run into is that the commands in the script following the open location line are run before the page has finished loading. As a workaround I've put in a delay of a few seconds before the keystrokes are sent, but you might want to adjust the number depending on the time it takes the page to load for you, and how consistent it is.

Code:
tell application "Firefox" to activate
set CR to ASCII character of 13
open location "https://forums.macrumors.com"
delay 3
tell application "System Events"
	keystroke tab
	keystroke CR
end tell
 

konifer

macrumors newbie
Original poster
Jan 2, 2007
2
0
absolutely perfect, that's exactly what was needed..

I tried delaying it before but it didn't change anything, it was obviously just the system events part that was wrong.. I wonder why I couldn't find that anywhere?

anyway thanks ever so much!!
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.