在AppleScript旁边使用条形码扫描仪

时间:2019-05-04 20:17:25

标签: automation applescript

我希望程序等待用户扫描条形码,接受条形码扫描仪输入的文本,然后将该代码放入Google表单。

美好的一天,

我熟悉Apple Scripts,并且在自动执行任务之前就使用过它,但是我试图使它成为更具体的任务。我的计划是在Safari中打开Goog​​le表单。然后等待用户扫描条形码,然后从条形码中获取输入文本,然后将其放入Google表单中的某个位置。任何帮助将使程序等待条形码输入,然后继续执行脚本,将大有帮助。谢谢!

以下是Google表单的示例,其中包含以下代码的功能:https://forms.gle/E4SGL7jPqaHsf5Cb9

(请注意,在下面的代码中,重复项已被注释掉,因为它们将最终被使用,但不会在测试过程中使用。)

代码:

    --repeat--

    tell application "Safari"

        activate

        make new document

    end tell


    tell application "System Events"

        tell application process "Safari"

            keystroke "https://forms.gle/isxQK1xjkow8xiUq8"

            keystroke return

        delay 2

        keystroke tab

        -- This is where the code would need to be added for inputing the text from the barcode scanner --

        keystroke tab

        keystroke return

        end tell

        end tell


        tell application "Safari"

        close window 1

        end tell

    --end repeat--

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

tell application "Safari"
    activate
    make new document
    tell the front document
        set the URL to "https://forms.gle/isxQK1xjkow8xiUq8"
        repeat until source ≠ "" -- wait for web page to fully load
            delay 0.5
        end repeat

        repeat -- wait until Key Card Code input field is not empty
            try
                if ["", current application] does not contain ¬
                    (do JavaScript "document
                    .querySelector('input.exportInput')
                    .dataset['initialValue'];") then ¬
                    exit repeat
            end try
            delay 1
        end repeat

        -- Click the Submit button
        do JavaScript "document.querySelector('div.quantumWizButtonEl')
                               .click();"
    end tell
end tell

您可能还需要注意并有用的是,我相信可以通过以下URL中的查询参数提交钥匙卡代码

https://docs.google.com/forms/d/e/1FAIpQLSftqU8ZKpiw-JNwD_IF2LQ5of2rvZwT9kWUTEm2pH_YEX4rwg/formResponse?fvv=1&entry.240624510={{Key-Card-Code}}

其中{{Key-Card-Code}}将被输入替换。它可能提供了自动化表单提交的另一种方法。