Sure. Just need to call 1P again to get the next part.
Here is an updated script
use AppleScript version "2.4" -- Yosemite (10.10) or later
use framework "Foundation"
use scripting additions
on run
--» Get the property values from Keyboard Maestro variables
tell application "Keyboard Maestro Engine"
set searchTerm to getvariable "OPsearchTerm"
if searchTerm is "" then return false
set waitTime to getvariable "OPwaitTime"
if waitTime is "" then return false
end tell
tell application "System Events"
set preClip to (the clipboard) as text
set elements to every UI element whose creator type is "1Pwd"
if elements is {} then return false
set appRef to (first item of elements)
set menuBars to every menu bar of appRef
if (count of menuBars) is 1 then return false
set appName to short name of appRef
set isLocked to my isOPlocked(appName)
--» Get the Username
open location "onepassword://extension/search/" & searchTerm
if isLocked then
if not (my waitForUnlock(appName, waitTime)) then return false
end if
tell its UI element (name of appRef)
set frontmost to true
set i to 0
repeat
try
if (focused of text field 1 of window 1) is true then
tell text field 1 of window 1
set value to searchTerm
perform action "AXConfirm"
end tell
delay 1.0
keystroke "c" using {command down, control down}
delay 0.5
set theUsername to (the clipboard) as text
exit repeat
end if
end try
delay 0.1
set i to i + 1
if i > 100 then return false
end repeat
end tell
--» Get the Password
open location "onepassword://extension/search/" & searchTerm
if isLocked then
if not (my waitForUnlock(appName, waitTime)) then return false
end if
tell its UI element (name of appRef)
set frontmost to true
set i to 0
repeat
try
if (focused of text field 1 of window 1) is true then
tell text field 1 of window 1
set value to searchTerm
perform action "AXConfirm"
end tell
delay 1.0
keystroke "c" using {command down, shift down}
delay 0.5
set thePass to (the clipboard) as text
exit repeat
end if
end try
delay 0.1
set i to i + 1
if i > 100 then return false
end repeat
end tell
--» Paste the Username and Password
tell application "App Store" to activate
delay 0.5
keystroke theUsername
key code 36
delay 0.5
keystroke thePass
key code 36
set the clipboard to preClip
end tell
end run
on isOPlocked(appName)
tell application "System Events"
tell application process appName
perform action "AXPress" of menu bar item 1 of menu bar 2
set isLocked to (subrole of text field 1 of window 1 is "AXSecureTextField")
delay 0.1
key code 53 -- Escape key to close 1PMini window
if isLocked then return true
return false
end tell
end tell
end isOPlocked
on waitForUnlock(pProcessName, pMaxTimeSec)
local startTime, elapTime, errMsg
set startTime to current application's NSDate's |date|()
tell application "System Events"
repeat
set elapTime to (-(round ((startTime's timeIntervalSinceNow()) * 100)) / 100.0)
if (elapTime > pMaxTimeSec) then return false
try
set roleMode to (subrole of text field 1 of window 1) of (application process pProcessName)
if roleMode is "AXSearchField" then return true
end try
delay 0.1
end repeat
end tell
end waitForUnlock