Coding a button click from within AppleScript

I’m trying to automate some repetitive tasks I need to do. This seems like a simple question but has stumped me for days.

I have Safari open with just one window and the page has a button I would like my script to press. I first tested using the element inspector and entered my code in the console too click the button and it worked.

var button1 = document.getElementById(‘msku-custom-option-link’)

< undefined

button1.click()

< undefined

I’m now trying to do the same button click from a script file and I do not get the button click action. My script code is as follows

tell application “Safari”

delay 3

do JavaScript “document.getElementById(‘msku-custom-option-link’).click() ;” in document 1

do JavaScript “document.getElementById(‘msku-custom-option-link’).click();”

end tell

See if this helps: How to click a button on a Web Page with AppleScript – CubeMG

to clickID(theId) --creates a function that we can use over and over again instead of writing this code over and over again

tell application "Safari" -- lets AppleScript know what program to controll

do JavaScript "document.getElementById('" & theId & "').click();" in document 1 -- performs JavaScript code that clicks on the element of a specific id

end tell -- tells Applescript you are done talking to Safari

end clickID -- lets AppleScript know we are done with the function

I tried following the suggestion copying the code and modifying for my particular button

The script is

to clickID(theId) --creates a function that we can use over and over again instead of writing this code over and over again
	tell application "Safari" -- lets AppleScript know what program to controll
		display dialog "Start"
		display dialog theId
	
		do JavaScript "document.getElementById('" & theId & "').click();" in document 1 -- performs JavaScript code that clicks on the element of a specific id
		display dialog "End"
	end tell -- tells Applescript you are done talking to Safari
	
end clickID -- lets AppleScript know we are done with the function

on run
	

I get the display dialog messages but no button click

![Screen Shot 2025-03-19 at 11.35.46 PM|690x335](upload://cMDj3MCiBQyztK3ajA1bDxxJvlF.png)

Try adding

activate

in the Tell Safari block?

Adding the activate did not help. I did inspect the output of the Inspect Element and see that the button is part of an iframe. I’m thinking my reference to the button is not proper.

I’ve included a screen shot of the Inspect Element output. The button I wish to programatically click is within the iframe.