Unsplashこんにちは!個人開発者の南です!今回は僕が、Seleniumを使って自作のWordPressテーマ「GuildPress」の自動テストを取り組んでいた時に出てきたホバー処理の実装方法について紹介します!実はホバー処理をしなくても単純に要素を見つけて、そのリンク先に飛べば良いということに後でコードを書いていて気づきました。ホバーしている様子を見ることで、実際にどのページをクリックしているとか、ホバーの動作を確認することができます。ホバーは処理は覚えておいて損はないと思います。UnsplashSeleniumでホバー処理をするには、下記のようにコードをかきます。#要素のリンクを取得してクリック。ActionChains(driver)#perfom処理でホバーdriver_action.move_to_element(main_menu_box).perform()#要素のリンクを取得してクリック。driver.find_element_by_xpath(sub_menu_path).get_attribute('href')driver.get(sub_menu_box)ちなみに、コード上の「driver」の部分はwebdriver.Chrome()などの、実際に使用しているドライバーの値を入れるようにします。Unsplashコメントに書いてあるとおり、このコードは次の4つの処理に別れています。1.要素を取得2.ActionChainsのインスタンスを作成3.要素のリンクを取得してクリックそれぞれについて解説していきます。要素を取得についてここでは、find_element_by_xpathを使って管理画面メニューの固定ページの要素を取得しています。実際のコードでは下記の部分です。次は、ActionChainsのコードについてです。ActionChainsとは、Seleniumでマウスの動きやキーの操作などを表現する時に使うクラスのことです。SeleniumのActionChainsのドキュメントはこちら要素が取得できたら、move_to_elementで要素にマウスを移動する処理を行います。そのあとに、perform()で実際に要素にマウスを移動したという処理を実行します。することで、下記の画像のようにホバーしている要素を実現することができます。3.要素のリンクを取得してクリックについてActionChainsで、ホバーを実装することはできますが、そこから更に表示された要素に移動するということができませんでした。そこで色々調べてみたのですが、結局解決策が見つかりませんでした。考えたら管理画面のメニューを表示しているので、要素には別の方法でアクセスすることができるということに気づきました。要素にホバーして、クリックできへん。記事はこちら単純に表示されているので、href要素を取得すれば良いということに気づきました。そこで、下記のコードを書いてマウスホバーをリンクをクリックという処理を実装しました。#要素のリンクを取得してクリック。driver.get(sub_menu_box)123#要素のリンクを取得してクリック。driver.find_element_by_xpath(sub_menu_path).get_attribute('href')driver.get(sub_menu_box)マウスホバーに頭を取られていると、意外と気づかないものですね。UnsplashActionChainsを使う時は、下記のようにActionChainsのクラスをロードするようにしましょう。ActionChainsこれで、Python上でActionChainsを使用することができるようになります。まとめ今回はSeleniumを使ってメニューの要素をホバーする方法を紹介しました。この記事が僕と同じように、Seleniumでホバーを実装するにはどうすればいいか悩んでいるあなたの助けになれば嬉しいです。健太郎1991年生まれ。都内でエンジニアをしています。このブログでは、個人開発や日々の技術に関する情報などを発信していきます。健太郎2019年3月21日seleniumこの投稿へのコメントコメントはありません。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。この投稿へのトラックバックコメントはありません。