Selenium Python を使用して Web サイトにログインする
Web サイトへのログインなど、ブラウザでのタスクを自動化したい場合があります。ログインが必要な Web サイトからデータを取得したいシナリオで役立ちます。
Python は、Selenium などの Web 自動化用の多くのパッケージを提供しています。
Selenium Python を使用して Web サイトにログインする
Selenium は、Web ブラウザー用の強力な自動化およびテストツールです。Web ブラウザーを制御し、特定のアクションを実行するスクリプトを作成します。
Selenium と ChromeWebdriver をインストールする
Selenium をインストールするには、次のコマンドを使用します。
#Python 3.x
pip install selenium
ChromeDriver は、Selenium WebDriver が Chrome と対話するために使用するもう 1つの実行可能ファイルです。Chrome Web ブラウザーでタスクを自動化する場合は、ChromeDriver もインストールする必要があります。
Chrome ブラウザのバージョンに基づいて、互換性のあるドライバを選択する必要があります。Chrome ドライバーをインストールして構成する手順は次のとおりです。
- このリンクをクリックします。Chrome ブラウザのバージョンとオペレーティングシステムの種類に応じて Chrome ドライバをダウンロードします。
- Chrome ブラウザのバージョンを確認する場合は、Chrome の右上隅にある 3つのドットをクリックし、[ヘルプ]をクリックして、[GoogleChrome について]を選択します。Chrome のバージョンは[バージョン情報]セクションで確認できます。
- zip ファイルを解凍し、Chrome ドライバーを実行します。
Selenium Python を使用した Web サイトへの自動ログインのコード
次のコードで WebDriver インスタンスを作成し、Chrome ドライバーへのパスを指定しました。次に、ターゲット Web サイトの URL
をドライバーインスタンスに指定しました。目的のブラウザで対象のウェブサイトを開きます。
後でサインインするために使用する変数にダミーの電子メールとパスワードを保存しました。電子メールとパスワードの入力とログインボタンのクリックを自動化するには、それらの名前/ ID
(使用可能なもの)を見つける必要があります。Web 要素。
ブラウザで目的の Web サイトを開き、要素を右クリックして、[要素の検査]をクリックする必要があります。ここでは、要素の名前を含む HTML コードを確認できます。
要素の名前をコピーし、それを引数としてドライバーのインスタンスを使用して find_element_by_name()
メソッドに渡します。残りの 2つの要素についてもこのプロセスを繰り返します。
このメソッドは、変数に格納する Web 要素を返します。sendkeys()
メソッドを使用して、関連するフィールドへの電子メールとパスワードの入力を自動化します。
フィールドに入力してから 2 秒のタイマーを設定し、ユーザーがプロセスの遅延を通じて何が起こっているかを観察できるようにします。最後に、ログインボタンは自動的に click()
メソッドをクリックします。
コード例:
# Python 3.x
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome(r"E:\download\chromedriver.exe")
driver.maximize_window()
driver.get("https://discpersonalitytesting.com/login-here/")
email = "myemail@email.com"
password = "mypassword1@23"
email_textfield = driver.find_element_by_name("email")
password_textfield = driver.find_element_by_name("password")
login_button = driver.find_element_by_name("LoginDAPLoginForm")
email_textfield.send_keys(email)
time.sleep(2)
password_textfield.send_keys(password)
time.sleep(5)
login_button.click()
出力:
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn