セブンイレブンのWifiスポット 7SPOTは、むちゃくちゃ速い!

コンビニWifiといえば、

  • ログイン画面がとてもユーザフレンドリーなローソンWifi
  • 死ぬほど使いづらいFamima-WiFi
  • ほぼどこのセブンでも使える7SPOT

だ。nuro光が全然開通しないので、写真や動画のアップロードをするのにコンビニに行ったりカフェに少しだけ行ったりしてるんだけど、そのなかでの大発見。

セブンのWiFiはむちゃくちゃ速い

正直、3桁のMbpsはフレッツ光ネクストを使っていても一度も見たことはない。

続きを読む

Selenium (Ruby) やCapybaraの弱いところをPuppeteerで救いに行く

f:id:YusukeIwaki:20200605001527p:plain

「puppeteer-rubyは、Capybaraと共存して動作精度を向上できるのでは?!」っていうことに先週くらいにふと気づいたので、カッとなって実装してみた。

github.com

CapybaraとPuppeteerの共存

そもそもなんで共存させる必要があるのか?

  • Seleniumだと「○○の要素が現れるまで待つ」「△△の要素が消えるまで待つ」みたいなところで、時々DOMの変化通知を拾いそこねて、失敗してしまうことがある。
  • PuppeteerはDOMの変化通知には強い。ただ、全部をPuppeteerで書き直す気力は無い...。

みたいな感じで、SeleniumやCapybaraの既存コードをなるべく書き換えないうえでPuppeteerのを動かしたい需要は、割とある気がした。

で、需要はありそうなのに、世の中にあるのは

のように、Capybara/Chromeドライバを完全に置き換える仕組みばっかりだなぁと。

「おれはべつにSeleniumを否定したいわけじゃないんだ。Seleniumの不満ポイントをどうにかPuppeteerで補強したいだけなんだ」ということで、puppeteer-rubyをそっちの方向で使えるように Puppeteer.connect を実装した。

実際に動作させた例

image

続きを読む

puppeteer-ruby 0.0.11で完走率が劇的に改善。ブラウザの自動操作が快適に。

f:id:YusukeIwaki:20200605001527p:plain

puppeteer-rubyが抱えていた問題

これまでのpuppeteer-rubyでは、「なぜか自動操作が止まってしまう」「なぜかdocumentエレメントが取得できず落ちる」という事象が多発していた。ようするに、自動操作の完走率がものすごく悪く、「なんか時々止まってしまう」という最悪な状態だった。

これらの原因は、ほぼほぼWebSocketのレスポンスハンドリングの順序がなぜか前後してしまうことに起因するものだった。

続きを読む