Selenium Python の send_keys() 関数

Rana Hasnain Khan 2023年6月21日
  1. Selenium Python の send_keys() 関数
  2. Selenium Python で send_keys() 関数を使用した入力検証
  3. Selenium Python で send_keys() 関数を使用してテキストを消去する
Selenium Python の send_keys() 関数

Selenium Python の send_keys() 関数を紹介し、その使用方法を示します。

どのアプリケーションも、市場に出る前にいくつかのテストを通過する必要があります。 アプリケーションは、まずその名前に関連付けられたすべての要件を満たす必要があります。

アプリケーションに与えられる正確な入力を誰も予測しないため、アプリケーションを包括的にテストする必要があります。 Python Selenium は、考えられるすべての原因をテストするのに役立ちます。

send_keys() は、数字、テキスト、記号などのキーボード入力をアプリケーションのテキスト ボックスに送信するプロセスです。 send_keys() は WebDriver の一部であり、各キーボード入力はこの要素に送信されます。

Selenium Python の send_keys() 関数

このメソッドに含まれる最初のステップは、テストする Web アプリケーションを開くことです。 URL を使用してアプリケーションを開くことができます。

アプリケーションが動的タイプの場合はテストが失敗するため、ページ全体が正常にロードされるまで待ちますが、テストの適用中に Web ページが完全にロードされません。

次のステップでは、キーボード入力に送信される目的の要素を選択して検索します。 この要素は通常、ユーザーがその中に書き込むことができるテキスト ボックスです。

要素は、検索タブまたは何らかのフォームにすることができます。 要素 ID、要素名、XPath などのいくつかのオプションを使用して、要素を見つけることができます。

要素を選択した後、send_keys メソッドを使用してキーボード入力が送信されます。 ID、クラス名、または xpath を使用して要素を見つけることができます。

各メソッドの構文を以下に示します。

# python
getElemById = driver.find_element_by_id("myId")
getElemByName = driver.find_element_by_name("myClass")
getElemByXPath = driver.find_element_by_xpath("//input[@id='myId']")

send_keys() の主な用途は、多数の入力に対してアプリケーションをテストすることです。 ただし、この方法で一般的に使用される 2つの入力について学ぶことが重要です。

Selenium Python で send_keys() 関数を使用した入力検証

ほとんどのアプリケーションには、ユーザーの電子メール アドレスが広く使用されているログイン フォームがあります。 各電子メール アドレスには、ユーザー名で始まり、記号 @ が含まれ、その後にドメイン名が続く標準テンプレートがあることがわかっているためです。

ここで、電子メール アドレスを検証するプロセスを追加する必要があります。

これにより、ユーザーが無効な電子メール アドレスをログイン フォームに書き込んでアプリケーションにログインすることはできなくなります。 検証は、メイン テンプレートに従わない入力を送信してアプリケーションを追加およびチェックすることで確認できます。

このプロセスには、追加の検証も含まれる場合があります。 アプリケーションにログインするためのパスワードには特定のルール セットがあるため、この検証は、ルールに従わない入力を送信することで確認できます。

アプリケーションにある検索バーもチェックする必要があります。 検索バーには関連する結果が表示され、ユーザーが目的の検索要素に適切に誘導される必要があります。

send_keys() は、検索バーから予想される結果を確認するための便利なツールです。

一部の Web アプリケーションには、アプリを公開する前に確認する必要がある特別な機能が含まれています。 特別な機能の一例として、Ctrl+D を使用してマイクをミュートまたはミュート解除する Google Meet があります。

コード例:

# python
from selenium import webdriver

Chromedriver = webdriver.Chrome()

Chromedriver.get("https://www.google.com/")

getElemById = Chromedriver.find_element_by_name("gLFyf")

getElemById.send_keys("This is filed by Selenium send keys")

出力:

Selenium send_keys() - 例 1

上記の例からわかるように、selenium の send_keys() メソッドの助けを借りて、任意の Web サイトの任意の入力フィールドに入力できます。

Selenium Python で send_keys() 関数を使用してテキストを消去する

同じ send_keys() 関数を使用して、キーの値を編集および変更することもできます。 入力の値を変更する例を見てみましょう。その後、もう一度変更します。

この例では、キーを送信します。 3 秒間スリープした後、キーから 3 文字を削除します。 最後に、以下に示すように値を再度変更します。

コード例:

# python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

link = "https://www.google.com/"

chromeDriver = webdriver.Chrome("C:\chromedriver.exe")

driverOptions = webdriver.ChromeOptions()

windowSize = chromeDriver.get_window_size()

chromeDriver.get(link)

getElemByName = chromeDriver.find_element_by_name("gLFyf")

getElemByName.send_keys("For test purpose")
time.sleep(3)

getElemByName.send_keys(3 * Keys.BACKSPACE)

time.sleep(3)

getElemByName.send_keys("testing second key")

time.sleep(3)

getElemByName.clear()

time.sleep(3)

chromeDriver.quit()

最初の一歩:

Selenium send_keys() - 例 2 最初のステップ

第二段階:

Selenium send_keys() - 例 2 の 2 番目のステップ

3 番目のステップ:

Selenium send_keys() - 例 2 の 3 番目のステップ

トラブルシューティングの問題:

  1. 選択した要素がキーボード入力からのものであることを確認する必要があります。
  2. 要素の識別は、複雑化を避けるために適切な参照とともに提供する必要があります。
  3. 常に適切な方法に従ってください: 要素を検索し、要素をクリックしてからキーを送信します。
  4. send_keys() は、要素がアクティブでないか、手の届かないところにある場合に失敗する可能性があります。 特定の要素に取り組んでいる間は、これらの要因を必ず数えてください。
Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn

関連記事 - Python Selenium