Apple Mac インターネット関連技術 ブラウザ

Applescriptで初心者が罠にハマったところ

更新日:

最近Applescriptでsafariをいろいろと操作していたのですが、そこでハマったところを備忘録的に列記しておきます。

(お約束)ご利用は自己責任でお願いします

  1. サブルーチンは my で呼ぶ。my無しでも呼べるが二回目以降エラーになる
  2. ダイアログから"text returned of"で得た数値は as number で変換しないと文字列と認識されて誤処理される可能性あり。

    以下のように書くとelseルートにしか通らない
  3. safariでtype="image"のボタンをクリック。
    なぜこれでできるかはよく分からないが、できたのでよしとする(笑)。
    参考 http://stackoverflow.com/questions/22082120/click-on-input-type-image

     
  4. submit ボタンをクリックする。
    例えばファンサカにログインするときは以下の様なかんじ。

    formのidは『login_form』、Yahoo! JAPAN IDのidは『username』、なので、『document.login_form.username.value』 に 『mailID』 を代入するかたちになります。

     
  5. 指定IDや指定classをクリック
    参考 http://cubemg.com/applescript/how-to-click-a-button-on-a-web-page-with-applescript/
    ここでサブルーチン化されているものを使えばOK。サブルーチンのtoはonと同じ。例えば
    『<input type='button' id='CT_BUTTON_0' onclick='ConnentClick(0)'  value='接続' />』
    をクリックしたいとき、指定IDなら以下のように書く。

    class名やタグ名でも同様。elementnumはエレメントの順番を指定する。

    そして使うときには、以下のように 「tell application "Safari"」を分けること。

  6. safariでいつも同じウィンドウ(タブ)でURLを開く。
    以下のように書くと新しいタブでURLを開いてくれます。

    ただそれだと都合が悪いときがある。いつも同じウィンドウの同じタブでURLを開きたいときは

    参考 http://stackoverflow.com/questions/7015881/applescript-safari-open-url-in-current-window

  7. リンクをクリックする。
    上記5をつかってクリックする。例えば以下のようなリンクの場合

    以下の様な感じでクリック可能。

    サンプルには三つ書いたが、もちろん三つのいずれかを使うこと。
    my clickID("linkID")
    my clickClassName("linkClass", 0)
    my clicktagName("a", 0)


    ただ my clicktagName("a", 0) は一番上の <a href= に反応してしまうので、以下のように二行目のyahooや三行目のamazonをクリックすることは不可能になる。
    そういう場合はURL(文字列)を抽出してsafariに送るとかの工夫が必要になると思われる。

     
  8. 『~』チルダが『‾』(上線、オーバーバー、オーバーライン)になってしまう。
    チルダはほぼURLでしか利用されていない(と思う…)ので、URL形式で書けばよい。『~』のURL形式は『%7e』
  9. safariが落ちる。
    こういうコードで落ちるときは、

    こうやって分けると落ちないことがあるので、試行錯誤してみる。

     
  10. ファイルの文字コードをUTFに変換する。
    Applescript内はどうやらS-JISらしい。「 write saveData to saveFileName 」などとファイルを書き出すとS-JISになる。
    UTFにしたいときは、シェルのiconvでの変換が楽。

     
  11. Finderで選択したフォルダ内にある画像を指定した横幅でリサイズしてImageOptimで容量圧縮するApplescript
  12. メモ
    http://cubemg.com/applescript/how-to-extract-information-from-a-website-using-applescript/
    http://cubemg.com/applescript/how-to-get-applescript-to-wait-for-a-page-to-load/

フッター広告







フッター広告







-Apple Mac, インターネット関連技術, ブラウザ
-, , , ,

Copyright© salmomoのさるもも , 2017 All Rights Reserved.