dreevee.comのサイト変更で動かなくなってたので修正しました。
うちで作って公開している「CMくじ自動巡回ツール」ですが、いつの間にか、うまく動かなくなってましたね・・・(;^ω^)。まあ、サイト側は変更されるんで、仕方ないんですけどね。
というわけで、修正しました。
もし、使ってる方がいましたら、最新版を取得ください。textファイルは過去バージョンのものをそのまま使えます。
UWSCスクリプト ダウンロード
自動化しても、たまには見ないとだめですねw。いつの間にかサイト側の仕様変更とかで、動かなくなっていたりしますからね。
特に、CMくじはponcanからdreevee.comに変わってから、動きが安定してませんからね。
なんか、ちょくちょく修正しているみたいだし、広告などもいつの間にか追加されているようです。というか、広告だらけのページになってますね。
初心者さん向け スクリプト修正内容解説。
せっかくなので、今回修正した内容を解説します。
たいした修正はしてなくて、10分くらいでちょこっと直しただけです。
ただ、UWSC初心者の方には参考になるかもしれません。
こちらが今回の修正前後比較です。
修正のポイントは下記の2点です。
なんか、ページが下にいかなくなったのを修正した。
いつの間にか下に出てくるようになった広告をクリックで消すようにした。
なんか、ページが下にいかなくなったのを修正した。
まずはこの部分。
url2 = url + "#user-cm-kuji"
これはtxtファイルから取ってきたdreeveeのURLに、「#user-cm-kuji」を付け足してます。
これは、クリックしやすいように、WEBページ内のちょうどいい「目印」の部分に、ページをスクロールしてあげる意図があります。
例えば、普通にdreeveeのサイトを開くと、以下のようになりますが、
URLに「#user-cm-kuji」を付けると、下記のように下にスクロールした状態で開くわけです。
ね?くじのボタンが押しやすくなったでしょ?(∩´∀`)∩。
これがなぜか、うまく動かなくなっていました。
なので、最初に普通のURLで開いた後、もう一度「#user-cm-kuji」付きURLで開くようにしました。
それがこの部分です。
IE.Navigate(url2) BUSYWAIT(IE)
「#」付きURLで開いたときにうまくスクロールできないときは、このように2回開いてあげることでうまく移動できることがあります。(ケースバイケースですけど)
いつの間にか下に出てくるようになった広告をクリックで消すようにした。
次に、この下に出てくる広告です。
これのせいで、じゃんけんのときにうまくクリックできないのです。いつの間にか出てくるようになってました。
なので、今度はコイツの「×」ボタンのところをクリックして、広告を削除します。
まず、「×」ボタンのところ右クリックして、「要素の検査」を選択しましょう。(Google Chromeの場合は「検証」)
すると、「×」ボタンのところのhtmlソースコードが見えます。
aタグの中にimgタグが入っていることから、「画像リンク」であることがわかるわけです。
となると、これをクリックするには、以下の記事で書いた、「画像リンクをクリックしたいときはIE.Document.Images」でOKなわけです。
この部分です。
imgタグのalt属性に「Btn floating close」という文字が含まれているようなので、今回は、「POS(“Btn floating close”, IMG_LST.Item(I).Alt) > 0」で「×」ボタンを特定しています。
IMG_LST = IE.Document.Images FOR I = 0 TO IMG_LST.length - 1 IFB POS("Btn floating close", IMG_LST.Item(I).Alt) > 0 THEN IMG_LST.Item(I).Click() ENDIF NEXT BUSYWAIT(IE)
めっちゃ簡単でしょ?(そうでもないかな?w)
UWSCの実装の参考にしてくださいまし。(*^-^*)
ちなみにサイトでエラーが出まくるのは私のスクリプトのせいではありませんのでw
まあ、それはさておき、弁解しておくのですが、サイトでエラーが出まくるのは私のスクリプトのせいではありませんw。
なんか、dreeveeのサイトで、
「申し訳ございません。エラーが発生しました。しばらく時間をおいてから再度アクセスしてください。(vbe)」
って出てきたり、
画面が真っ白になったり、
とかが、しょっちゅう起こって困るのですが、これはサイト側の問題なので・・・(;^ω^)。
たぶん、javascriptがどこかおかしいか、非同期処理のエラーが出ているとかしてるのでしょう。
いくら自動化を頑張っても、サイト側の不具合はどうにもなりませんw(´・ω・`)