nend・nex8のエンジニア・技術ブログ2017-12-13SeleniumのWebDriverがアドレス渡しである話Pythonこんにちは。ファンコミュニケーションズのr_nakayamaです。急ですが、最近、SeleniumのWebDriverがアドレス渡しであることがわかりました。最初に書いていて間違っていたコードがこちら(ドライバーはphantomJS)。phantomJSを使っていた理由は、displayを設置しなくて済むからなどです。'')driver.quit()子フレーム操作後に戻ってきて、親フレーム位置にドライバーを戻す、という方法でフレームの移動を操作していました。使わない理由そもそも、switch_to.parent_frameがあるのに、なぜ使わなかったのか。5(5)1(4)親フレームだけは回れてますが、子フレームは全部1個目しか潜れていない!ここでdriverがアドレス渡しかもしれないということに気づきました。page_iframeになってしまっていたんですね。結論SeleniumのWebDriverはアドレス渡しなので、扱いには気をつけましょう。親フレームへ戻る時は、switch_to.parent_frameを使いましょう。加えて、phantomJSでは、switch_to.parent_frameが使えないので、switch_to.parent_frameの使えるWebDriverを使いましょう。してもphantomJSを使いたい場合は、それを踏まえたコードを書きましょう。修正したコードphantomJSをやめ(Chromeにドライバーを変更)、switch_to.parent_frameで書き直したコードが下。クロールしたサイトは間違っていたコードと同じ時のものです。iframeは動的に展開されるので、前の結果とiframeの数など違うところがあります。5(5)3(3)ちゃんと回ってますね!最後に弊社では随時インターン生を募集しています。皆さんこんにちは、h_matsumotoです。最近レンタルが解禁され...2015-02-27innodb_print_all_deadlocksを試してみましたh_nagayamaです。ロック...2015-02-20jsフレームワークについて初めまして。私がウェブ開発に携わり始めた2000年...2014-07-29MongoDBとHiveでごにょごにょ事始めこんにちは、s_mamedaifukuです。Are青山のアドテク会社。アドネットワークやDSPを開発・運用。サーバを止めてみたよ。インターン:実業務体験編インターンでCTR予測をしましたSearchArchiveスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。