SeleniumとGoogle Spreadsheets(7) 「苦労した編」

SeleniumとGoogle Spreadsheets(7) 「苦労した編」

ソフトバンク・au・ドコモの方は、公式のオンラインショップを利用すれば頭金不要で通常のショップよりお得に購入できます。

どうも、さむらいです。
先日いちごつけ麺なる奇抜な食べ物を食しに、東京都新宿区まで足を伸ばしたら、午後1時にも関わらず、すでに売り切れていました。1日10食の、そのおかしな食べ物を誰が食べたというのか!

ということで、前回まででひと通りのソースの説明は終わりましたので、今回はGoogle SpreadsheetsをSeleniumから利用するにあたって、苦労した話を書きたいと思います。

リファレンスが少ない!

まずはなんといってもこれ。SeleniumからGoogle Spreadsheetsにアクセスして云々なんてそもそもそんなニッチなことをやっている人が見つからなかったので、どうやってGoogleのAPIを叩けばいいのかを調べるのに時間がかかりました。

GData APIを使ってアクセスすればよろしい、というところまで調べがついてもGData APIのどのメソッド叩けばいいのさ!と狼狽しつつStack Overflowで英語を読みふけっていました。同じことで悩む人は世界のどこにでもいるもので、僕は一人じゃないと感じました(大げさ)
もう少し英語を勉強しなくてはいけませんねぇ。

セルの範囲が「行と列」という単位で取れない!

これは単に調査不足なだけだと思いますが「行:列」の2次元配列のような範囲で指定するとエラーでデータが取れませんでした。エラーの内容は忘れましたけど知ってる人がいたら教えてください。

OKケース

     

 

 
 
 

 
ダメケース

     
     
     

※諦めるまでに2日くらい悩んでました。

「列」の挿入ってどうやるの!

GData APIからは列を指定して、その前か後ろに列を追加、挿入というメソッドが見つかりませんでした。普通にAPIありそうなんですけど、探せませんでした。ぐぬぬ。

自動検証結果を新しい列に、どうしても挿入したい!と熱望していたので(自分が)、無理やりトリッキーな方法で実現しましたよ。

  1. Google Spreadsheetsのマクロに、列を追加する関数を追加する。
  2. 小さい画像をシートのどこかに隠して、クリックしたら列追加のマクロを実行するようヒモ付ける。
  3. SeleniumからシートをChromeで開き(ログイン処理も実施)、2で追加した画像をクリックしてChromeを閉じる。
  4. GData APIから追加されたであろう列に、データを書き込む。

簡単に書きましたが、Google Spreadsheets上に画像が現れるのは結構遅いので、エレメントが表示されるまで待つ関数を実行する、などしてタイミングを測りつつ調整しました。もうほんとにスマートじゃなくて泣けてきます。誰か美しいやり方を教えてください。

※これも諦めるまでに2日くらいかかりました。

ぱっと思いつくのはこのくらいですね。

勝手にデータが入っていく様を見るのは楽しかったですが、それでもこの記事を書けるようになるまでに、1ヶ月くらい(!)調査やらテストやらかかったので、勉強にはなったけどもうやりたくないですねぇ・・・。みんなあとは頼んだぜ・・。

ということで、一旦この記事は終了です。
次はもう少しJavaScriptにフォーカスした記事を書きたいと思います。お疲れ様でした。
ではまた!

ソフトバンク・au・ドコモの方は、公式のオンラインショップを利用すれば頭金不要で通常のショップよりお得に購入できます。

【週刊bitWave】(メルマガ)始めました!

登録はこちらからメールアドレスを入力してお申込みください。

ご登録いただいたメールアドレスは 【週刊bitWave】の更新情報の配信にのみ使用します。

個人情報の取扱いに関しては、「プライバシーポリシー」をご確認ください。解除はいつでもこちらから行うことが可能です。

あなたにおすすめ

SeleniumとGoogle Spreadsheets(6) 「GoogleSpreadSheet... どうも、さむらいですな。 この記事いつまで続くんだろう・・・。 ということで、前回ではGoogleSpreadSheetを利用するための認証処理を書きました。今回はその後実際にスプレッドシートを読み書きするサンプルをご紹介します。 S...
SeleniumとGoogle Spreadsheets(5) 「いよいよGoogleSpreadS... どうも、さむらいですな。 プログラマー出身のわたくしですが、ウェイトトレーニングが趣味です。でも寒い時期は全然ジムに行かないので体が緩んできました。が、頑張ります。 SeleniumとGoogle Spreadsheets(1) Se...
SeleniumとGoogle Spreadsheets(4) 「Chrome Driverを使いは... どうも、さむらいですね。 先日久々に Selenium で自動検証を実行させたら、すんなりいきすぎて逆に不安になりました。上手く行っても上手く行かなくても不安な小心者です。 SeleniumとGoogle Spreadsheets(1)...
SeleniumとGoogle Spreadsheets(3)「Eclipseの初期設定編」... どうも、さむらいです。 最近業務の都合上、最近 Selenium を触れていません。 でも負けない。 ということで、前回は基本的な環境セットアップが出来たであろうことを想定して、プログラムの説明に入ります。ここから、4回くらいに分割してお...