7
votes

I'm trying to figure out why my Applescript does nothing when the same javascript code typed into a Safari location bar works.

Go to a search results page, such as: http://www.google.com/search?q=test . For the correct behavior, type this into the location bar and hit enter:

javascript: document.getElementsByClassName('vspib')[0].click();

You'll see that it selects the magnifier for the first search result.

This is what I want to make happen via javascript. So I typed up the following:

tell application "Safari"
    activate
    do JavaScript "document.getElementsByClassName('vspib')[0].click();" in document 1
end tell

However, it does nothing. Any ideas?

1

1 Answers

16
votes

The problem is that do JavaScript has to correctly address a tab in a Safari window.

The following script works for me, if the search results page is the current tab in the frontmost Safari window:

tell application "Safari"
    activate
    set theScript to "document.getElementsByClassName('vspib')[0].click();"
    do JavaScript theScript in current tab of first window
end tell