自动填充javascript / applescript accuweather(noob)

时间:2014-05-13 01:13:16

标签: javascript applescript autofill

自从大学时代以来,我还没有完成任何真正的编程,即使在那时,它仍然是fortran和pascal(是的,我和自己约会......),所以对我来说,AppleScript和javascript非常陌生而且我可能会跳到最深处,但为什么不呢,对吧?

我目前正在美国各个城市寻找工作,我认为这将是一个很好的学习机会(以及一个让我保持敏锐的项目),以及#34;自动化&#34 ;在与各种人力资源/招聘经理的对话中,增加新城市和利用天气作为破冰者的过程。您可以在accuweather email alerts注册Accuweather电子邮件提醒,这似乎是一个不错的功能。

我在分配邮政编码的价值方面遇到了麻烦,我无法弄清楚我做错了什么。当我检查网站时,我看到以下内容:

<input name="wxzip" type="text" value="" style="width:60px;font-size:12px;
color:#444444;border:1px solid #000000" onchange="verifyZip();
" id="userZipSelection">

我已经尝试使用Applescript中的以下方法来设置使用JS代码片段的邮政编码值。

do JavaScript "document.getElementById('userZipSelection').value = 60015;" in document 1
do JavaScript "document.getElementsByName('wxzip')[0].value = 60015" in document 1
do JavaScript "document.getElementsById('userZipSelection')[0].value = 60015;" in document 1
do JavaScript "document.regform.wxzip.value = 60015;" in document 1

这些似乎都不适用于设置邮政编码。 BTW,在最终形式中,我将从列表中获取邮政编码,但为了简单起见,我在此示例中直接设置了值。

在网站上的代码中,有许多其他地方引用了邮政编码,但我不了解所有其他用途。例如:

if (document.regform.wxzip.value.length != 5)

我非常感谢任何/所有关于我做错了什么的建议w / r / t设置邮政编码的价值。

感谢。



在下面的adayzdone的帮助下,我已经摸索了解决方案。这是最终的工作代码:

tell application "Safari"
    activate
    open location "h@t@t@p://www.accuweather.com/alerts/index.asp"
    delay 3
    tell current tab of window 1
        do JavaScript "document.getElementById('userZipSelection').value=12345"
        do JavaScript "document.getElementsByName('email')[0].value = 'junk@email.com'"
        do JavaScript "document.getElementsByName('getforecast')[0].checked = true"
        do JavaScript "document.getElementsByName('getsevere')[0].checked = true"
        do JavaScript "document.getElementsByName('format')[0].value = 'html'"
        do JavaScript "document.getElementsByName('getupdates')[0].checked = true"
        do JavaScript "document.getElementsByName('hours1')[0].value = 10"
        do JavaScript "document.getElementsByName('hours2')[0].value = 19"
        do JavaScript "document.getElementsByName('days')[1].checked = true"
        do JavaScript "document.getElementsByName('days')[2].checked = true"
        do JavaScript "document.getElementsByName('days')[3].checked = true"
        do JavaScript "document.getElementsByName('days')[4].checked = true"
        do JavaScript "document.getElementsByName('days')[5].checked = true"
        do JavaScript "document.getElementsByName('days')[6].checked = true"
        do JavaScript "document.getElementsByName('days')[0].checked = true"
        do JavaScript "document.regform.submit()"
    end tell
end tell

似乎问题与添加窗口1&#34;的当前选项卡有关。位。任何人都可以解释为什么这解决了我的问题吗?

现在我只需要将所有内容更改为一个我可以更容易更改的变量来完成项目。

1 个答案:

答案 0 :(得分:0)

这对我有用......

tell application "Safari"
    tell current tab of window 1
        do JavaScript "document.getElementById('userZipSelection').value='12345'"
    end tell
end tell