広告

pythonのseleniumでボタンや画像をクリックする方法

pythonのseleniumで要素をボタンや画像をクリックしたい時に、方法が分からない人もいるかもしれません。そこで、今回はpythonのseleniumでクリック動作を指示する方法について解説していきます。

ここで学べる事:

  • pythonのseleniumで取得した要素(画像やボタンなど)をクリックする方法

seleniumで取得した要素をクリックするためのPythonライブラリ

今回説明するのはseleniumのライブラリでfind_elementを使った要素取得の解説です。画像や要素をクリックするために必要なライブラリは、以下が前提です。

  • seleniumはブラウザ操作を自動化するライブラリです。
  • webdriverは、Chrome()やFirefox()といった操作するブラウザを選択します

seleniumでクリックを行うステップ

seleniumでクリックを行うためには以下の2ステップが必要です。

  1. find_elementで要素を取得
  2. 取得した要素に.click()でクリックを指定

それぞれ解説していきます。

また、要素や画像をクリックするサンプルコードは、「Googleの検索窓をGoogleの画像検索窓にする」ケースを紹介します。

具体的には、以下のGoogle検索窓が表示されている状態で、以下画面キャプチャの右上に表示されている「画像」をクリックすることが本記事の解説のゴールです。

対象の作業ページと対象のクリック要素が決まったらコードの紹介を以降で行っていきます。コードはすべて必要な認識を持ちましょう。

まずは必要なライブラリのインポートとChromeで対象ページを開く

まずはseleniumのインポートとChromeで作業の対象ページ(今回はgoogleのトップページで検索窓を表示)を開きます。以下の対象コードを実行します。

ここまでを実行すると、以下画像のようにgoogleのトップページが表示されます。

この画面が表示されたら、クリックしたい要素にフォーカスします。クリックしたい要素を指定するには次で説明するfind_elementで要素を指定します。次の説明を見てましょう。

find_elementで要素を取得

クリックするためには、クリックする個所を特定する必要があります。クリックしたい箇所の特定はfind_elementを使います。
find_elementのメソッドの中で、今回はfind_element_by_xpathを使ってクリックしたい要素を指定します。現時点のクリックしたい箇所のxpathは以下のようにないます。

xpath以外にも色々あるfind_element
xpathを本記事では紹介しましたがfind_elementは様々なメソッドがあります。他のfind_elementを知りたい場合は下記の記事をチェックしてください。

⇒「pythonのseleniumで要素取得するfind_elementの使い分けと種類と取得方法

また、クリックしたい箇所を特定するには、ブラウザのデベロッパーモードでソースを確認していきます。

xpathの取得方法

デベロッパーモードはWindowsであればF12(Macは Command + Option + I キー)で開くことができます。デベロッパーモードを開いたらキャプチャの下にデベロッパーモードが表示されます。表示されたらデベロッパーモード左上のチェックボタンを押して、クリックしたい要素を押します。
クリックしたい要素を押したら、デベロッパーモードの画面に該当する要素が薄い青色でマスクされた箇所が出てきます。(画像の④)そうしたら右クリックを押して、「Copy」→「Copy XPath」をクリックします。

seleniumでxpathをコピーする4つの手順

ここまでで、クリックしたい要素を指定できている状態です。
クリックした要素を指定できたら、最後にクリックを指定します。

取得した要素に.click()でクリックを指定

まとめ:seleniumで要素をクリックするコード

ここまでで紹介してきたコードをまとめて記載します。以下を実行することで要素をクリックすることが可能です。