Ho solo una soluzione parziale , che funziona a parte alcuni piccoli problemi.
Prima di tutto, non puoi memorizzare l'URL nel nome del file (a causa di barre e caratteri speciali), quindi devi specificare il nome del sito web.
Ma ancora più importante, fino ad ora l'importazione CSV non è stata implementata. CSV è davvero un requisito difficile o potresti ottenere l'elenco di URL in un formato diverso? In caso contrario, aggiorna la domanda con linee esemplificative del tuo file CSV. Ci lavorerò e aggiornerò la mia risposta il prima possibile.
on open_url(theUrl, theUrlName, x0, y0, xSize, ySize)
tell application "Safari"
open location theUrl
activate
set bounds of window 1 to {x0, y0, xSize, ySize}
set windowID to id of window 1
set the_state to missing value
repeat until the_state is "complete"
set the_state to (do JavaScript "document.readyState" in document 1)
delay 0.3
end repeat
set theFolder to POSIX path of (path to desktop as string)
set shellCommand to "/usr/sbin/screencapture -l " & windowID & " " & quoted form of (theFolder & "Screen Shot " & theUrlName & " " & xSize & "x" & ySize & ".png")
do shell script shellCommand
end tell
end open_url
set resolutionList to {{640, 480}, {1024, 768}}
set siteList to {{"http://www.apple.com", "Apple"}, {"http://www.google.com", "Google"}}
repeat with resolution in resolutionList
set xSize to item 1 of resolution
set ySize to item 2 of resolution
repeat with theSite in siteList
set theUrl to item 1 of theSite
set theUrlName to item 2 of theSite
open_url(theUrl, theUrlName, 0, 0, xSize, ySize)
end repeat
end repeat