2 ways that i (almost) always do to save files from the internet
Get the URL of the link (using get attribute activity on the UiElement and getting the URL attribute), then use HTTP Request activity to save it to filepath of your choice. This is my preferred method as it is the quickest and relies on UI less so it can work better in the background.
Right click on the link, click ‘save target as’ then type in the full file path (including extension) to where you’d like to save it. This works 100% of the time, but requires the browser to be visible because right click does not work with SendWindowsMessages or with SimulateClick
This works in Unattended runs, but if you are looking for background Attended, then you might need to try using the TypeInto where you can Simulate both the keystroke and the click. A click might be needed to activate the pdf container. For TypeInto, use the string "[d(rctrl)][d(rshift)]s[u(rctrl)][u(rshift)]"
The selector should include the pdf container as shown in the image.
First is, use the TimeoutMS property on the first action that performs in the pdf container on the browser - you should be using the selector for the pdf viewer/container in the browser. This could be done on the ctrl+shift+s action
Second is, surround the ctrl+shift+s action with a Retry Scope until the Save As element shows up. This can prevent timing issues where the keystroke performs before the pdf is loaded. - this usually is not needed, and TimeoutMS can work by itself, but sometimes the pdf container has timing issues