paint-brush
Python と Selenium による Web 自動化@terieyenike
29,484 測定値
29,484 測定値

Python と Selenium による Web 自動化

Teri Eyenike5m2022/09/10
Read on Terminal Reader
Read this story w/o Javascript

長すぎる; 読むには

Web 自動化は、企業が開発中の製品、特にクリック、スクロール、その他のアクションなどのアプリの機能をテストするための最良の方法の 1 つです。この記事では、Selenium を自動化ツールとして使用して Python で Web サイトをテストし、ブラウザーでマウスやキーボードを使用せずにプロセス全体を自動化する方法を学習します。 Selenium を使用すると、人間が関与することなくブラウザーを閲覧または使用でき、ユーザー入力への入力や Web サイトとの対話などのプロセスを自動化できます。たとえば、Selenium を使用したフォーム送信の自動化が可能です。
featured image - Python と Selenium による Web 自動化
Teri Eyenike HackerNoon profile picture

Web 自動化は、企業が開発中の製品、特にクリック、スクロール、その他のアクションなどのアプリの機能をテストするための最良の方法の 1 つです。

基本的に、ウェブ自動化は人間の行動を模倣することであり、ソフトウェアがすべてのデバイス タイプのユーザーで機能することを保証することが重要です。

この記事では、Selenium を自動化ツールとして使用して Python で Web サイトをテストし、ブラウザーでマウスやキーボードを使用せずにプロセス全体を自動化する方法を学習します。 Selenium は Python だけでは動作しませんが、他の多くのプログラミング言語で動作します。

セレンは何に使用されますか?

Selenium を使用すると、人間が関与することなくブラウザーを閲覧または使用し、ユーザー入力への入力や Web サイトとの対話など、コードを使用してプロセスを自動化できます。たとえば、Selenium を使用したフォーム送信の自動化が可能です。 Selenium は、人間が 1 回クリックすることなく、すべてを単独で実行します。

入門

Selenium がコードを通じてアクションを実行する前に、ブラウザーの自動化を実行してシームレスにするためのパッケージとツールが必要です。

インストール

このセクションでは、Selenium パッケージと WebDriver 実行可能ファイルをインストールします。まず、Chrome ブラウザのバージョンを確認して、WebDriver の実行ファイルと同じバージョンに相当するようにします。

以下をローカル マシンにインストールする必要があります。

Chrome ブラウザ。ダウンロードはこちら

ChromeDriverの最新の安定版リリースをダウンロードします。 ChromeDriver Web ページで、Chrome のバージョンが ChromeDriver のバージョンと一致することを確認します。

次に、次のコマンドを実行して、ターミナルに Selenium をインストールします。

 pip install selenium

Web ページの自動化

まず、ファイルとダウンロードした ChromeDriver exec ファイルを含む新しいフォルダーを作成します。 Selenium では、選択したブラウザーとインターフェースをとるドライバーが必要です。このチュートリアルでは、Chrome ブラウザーを使用しています。

Python ファイルと同じディレクトリに ChromeDriver を配置することが不可欠です。

プロジェクトのディレクトリは次のようになります。

このプロジェクトで ChromeDriver を使用するもう 1 つの方法は、ファイルのパスの場所を見つけてコピーすることです。次のようになります。

MacBook ユーザー:

/Users/<コンピューターのユーザー名>/Desktop/chromedriver

Windows ユーザー:

C:\Users\<コンピュータのユーザー名\Desktop\chromdriver

WebDriver は、Selenium コードを橋渡しして Chrome ブラウザーで動作するようにするブリッジです。 Chrome ブラウザーは、ブリッジを提供します。それがなければ、自動化は不可能です。

次に、次のコードをコピーして、

 automation.py
ファイル:

 # automation.py
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys chrome_driver_path = './chromedriver'
service = Service(chrome_drive_path) driver = webdriver.Chrome(service=service) url = "https://en.wikipedia.org/wiki/Main_Page"
driver.get(url) article_count = driver.find_element(By.CSS_SELECTOR, "#articlecount a" ) print (article_count.text) drive.close()

Selenium を使用してウィキペディアをナビゲートするため、上記のコード スニペットでは次のことが行われます。

  • 関数webdriverをセレン モジュールからインポートします。
  • selenium.webdriver
    モジュールはすべての WebDriver 実装を提供し、Service オブジェクトはブラウザー ドライバーを処理するためのものです。
  • By
    クラスは、CSS クラス、ID などを使用して Web ページのドキュメント内の要素を検索するために使用されます。
  • Keys クラスは、RETURN / Enter、F1、Alt などのキーボードのキー押下によるアクションをシミュレートします。
  • 変数に chromedriver exec ファイルを割り当てます
  • ドライバーの実行可能パスをサービス オブジェクトに呼び出します
  • 次に、Chrome ブラウザーをインスタンス化します。
     webdriver.Chrome()
    サービス引数で
  • チェックする Web ページの URL を定義します
  • を使用して
    .get()
    メソッドは、URL で指定されたページに移動します

Wikipedia ページで、inspect 要素を開き、自動化のためにページから詳細を取得するために使用する要素にアクセスします。

次に、記事数を見つけるタスクに進みます。 WebDriver は、find_element メソッドを使用して要素をターゲットにし、

 By.CSS_SELECTOR
セレクター名を持つ最初のパラメーターとして、
 #articlecount a.


Python プログラムを実行する前に、スクリプトには次のメソッドがあります。

 driver.close()
、テストの実行後にブラウザ ウィンドウを閉じます。

次のコマンドでプログラムを実行します。

 python automation.py

端末からの結果には記事数が表示されるはずです。これは Web ページの正確な数字6,545,457を示しています。

クリック アクションのシミュレート

これまでに行ったことから、Selenium がマウスを使用したりクリックしたりせずに Web サイトをナビゲートすることは明らかです。

では、ブラウザがページ上のリンクのクリックに反応するアクションをシミュレートしてみましょう。

更新する

automation.py
これらのコード行で:

 # automation.py # import modules contact_us = driver.find_element(By.LINK_TEXT, "Contact us" ) contact_us.click()

このコード スニペットでは、リンク テキスト「Contact us」への要素を見つけています。

 By.LINK_TEXT
.要素を見つけたら、
 contact_us
との行動に
.click()
方法。

再度、次のコマンドを実行します。

 python automation.py


上記のコマンドは、お問い合わせページの結果を提供します。

Web ページを検索する

Selenium には非常に多くのユースケースがあります。 Web ページの検索は自動化によって実現でき、検索語の結果が得られます。

それでも、同じファイル、automation.py で、次のコードでファイルを更新します。

 # automation.py search = driver.find_element(By.NAME, "search" ) search.send_keys( "React" , Keys.ENTER)

上記のコードは、

 find_element
入力の name 属性を持つメソッド、search.

また、

 send_keys
ENTER キーを押して、キーワードReactを検索してシミュレートします。

ページの結果は次のようになります。

結論

この記事は、Python で Selenium を使用して Web を自動化する方法の概要です。特に、コードにエラーがあるかどうかとその修正方法を知りたいプロの開発者向けです。

Selenium を Python で Web 自動化に使用する可能性は無限大です。一部のユース ケースには、オンライン フォームへの入力、LinkedIn の求人への応募、クリッカー ゲームのプレイなどが含まれます。 Selenium を使用する他のユースケースを知っていますか?

以下のコメントでお気に入りのユースケースを共有してください。

もっと詳しく知る