7

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 Answer 1

16

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
Sign up to request clarification or add additional context in comments.

1 Comment

thanks so much. for some reason your code wasn't working every time for me, but this modification ended up doing the trick: execute front window's active tab javascript "document.getElementsByClassName('vspib')[0].click();"

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.