Safari 12.1 broke the Wait For Safari to Finish Loading action

Unfortunately, in the latest “update” to Safari, 12.1, they have broken the disabling of the Stop menu when the page has finished loading. As such, the Wait For Safari to Finish Loading action waits forever waiting for Safari to disable the Stop menu.

Unfortunately there is no workaround for this. Keyboard Maestro would fall back to ignoring this is the menu was not there, but since disabling a menu item when it is unnecessary dates back to 1984 or so, this failure was not one I anticipated.

I have reported the issue to Apple, although frankly I'm not that hopeful that they will restore the functionality.

You can use the SafariReadyState token and test to see if it returns “complete”, but this will only get you part of the way there since the Wait For Safari to Finish Loading action has inbuilt code to ensure the state continues to be complete for a period of time to allow for many web sites that.

Not ideal, and I doubt it will be resolved any time soon. I will look at what options there are to work around it in the future, otherwise the SafariReadyState is the best bet for now.

Can you point us to an example of how to use the SafariReadyState? Thanks!

Actually I have not found any of the built-in Actions to be completely reliable to tell me exactly when a web page has completely finished loading. So, I wrote this macro:

MACRO: Pause Until Web Page Element Exists [Example]

This works with both Safari and Chrome. The key is identifying a web page HTML element that will exist when you need to start using the page.

I have NOT tested this macro with Safari 12.1, nor under Mojave, but I believe it should still work fine. If not, please let me know.

1 Like

I have created a Plug In Actions to replace the broken built in one. Hopefully Apple will fix Safari, but probably not.

Is this been fixed in safari 13.0.3? Do I need to install this fixed plugin?

Safari will (likely) never fix this issue. They have basically given up trying to determine when the Stop menu will do something, and just leave it permanently enabled, hence defeating part of the traditional behaviour of the Wait For Safari to Finish Loading action.

Keyboard Maestro 9 also abandons checking this, so it does not need the plugin. Any previous version of Keyboard Maestro will need the plugin.

Thanks! I’ve updated to v9.

There is a very simple native solution without needing a plugin.

In Safari, the "Save As…" menu item works the same way the "Stop" menu item used to. When a page is loading, Safari disables "Save As…" until the page is fully loaded.

So simply use the action "Pause Until Conditions are Met", and have it pause until the menu item "Save As…" is enabled.

8 Likes