javascript - 自动填充 javascript/applescript Accuweather (菜鸟)

标签 javascript applescript autofill

自从大学时代以来,我就没有做过任何真正的编程,即使那时,它也是 fortran 和 pascal(是的,我正在和自己约会......),所以 applescript 和 javascript 对我来说相当陌生,我可能会跳入深渊,但为什么不呢,对吧?

我目前正在美国各个城市寻找工作,我认为这将是一个很好的学习机会(也是一个让我保持头脑敏锐的项目),可以“自动化”添加新城市的过程并利用天气作为与各种人力资源/招聘经理对话的破冰场。您可以通过 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

这些似乎都不能用于设置邮政编码。顺便说一句,在最终形式中,我将从列表中获取邮政编码,但为了简单起见,我在本示例中直接设置该值。

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

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

我非常感谢任何/所有关于我在设置邮政编码值时做错的事情的建议。

谢谢。

<小时/> <小时/>

在下面 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 的当前选项卡”位有关。谁能解释为什么这解决了我的问题?

现在我只需要将所有内容更改为一个变量,我可以更轻松地更改该变量来完成项目。

最佳答案

这对我有用......

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

关于javascript - 自动填充 javascript/applescript Accuweather (菜鸟),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23621350/

相关文章:

javascript - 如何 "sort"多边形 3d?

javascript - 根据 DOM 加载的文本更改文本区域高度

javascript - 计算给定 Angular 和长度的向量

excel - Applescript 不会打开 Excel 2011 工作簿

android - 如何在另一个应用程序中提示自动填充?

javascript - 预填写外部 HTML 表单?

javascript - Angularjs 和 Socket.io,在我看来不可能编辑值

AppleScript 和语音

macos - 使用单个 bash 行在多个终端窗口中运行多个命令

java - 不需要的自动填充