使用AppleScript从带有Javascript的下拉菜单中选择一个选项

时间:2014-03-12 23:43:37

标签: javascript macos applescript

我正在尝试编写一个ApplseScript,它可以帮助我通过从在线词典中获取单词定义来创建自定义学习列表。但是,字典的网页提供了不同的数据库,我无法通过JavaScript来选择要搜索的正确数据库。我检查了允许您选择数据库的元素:

<div class="dictionarySelectorContain">

    <select id="dictionaryselector" class="hasCustomSelect" title="Select a dictionary" style="display: inline-block; width: 63px; position: absolute; opacity: 0; height: 53px; font-size: 14px;">
        <option selected="selected" value="all" data-label="All"></option>
        <option value="english" data-label="English (UK)"></option>
        <option value="american_english" data-label="English (US)"></option>
        <option value="english-thesaurus" data-label="Synonyms (UK)"></option>
        <option value="american_english-thesaurus" data-label="Synonyms (US)"></option>
        <option value="english-french" data-label="Eng › Fr"></option>
        <option value="french-english" data-label="Fr › Eng"></option>
        <option value="english-german" data-label="Eng › Ger"></option>
        <option value="german-english" data-label="Ger › Eng"></option>
        <option value="english-italian" data-label="Eng › It"></option>
        <option value="italian-english" data-label="It › Eng"></option>
        <option value="english-spanish" data-label="Eng › Sp"></option>
        <option value="spanish-english" data-label="Sp › Eng"></option>
        <option value="harts_rules" data-label="Hart's"></option>
        <option value="garner_dict_legal_usage" data-label="Legal"></option>
        <option value="ox_dict_writers_editors" data-label="Writers"></option>
        <option value="pocket_fowlers_modern_eng_usage" data-label="Fowler's"></option>
        <option value="words" data-label="Grammar"></option>
    </select>
    <span class="customSelect" style="display: inline-block;"></span>

</div>

我尝试了以下脚本,但没有成功:

tell application "Safari"
    do JavaScript "document.getElementById('dictionaryselector').selectedIndex=9" in OxfordWindow
    do JavaScript "document.getElementById('q').value='" & SearchWord & "'" in OxfordWindow
    do JavaScript "document.getElementById('searchBtn').click()" in OxfordWindow
end tell

顺便说一下,为了预防任何问题,OxfordWindow引用了一个变量:应用程序“Safari”的窗口ID 4797的选项卡1,而id自然会改变。

我会感谢任何帮助,指针或刺激在正确的方向。

干杯!

0 个答案:

没有答案