まだウェブページのテストに悩んでいますか? クリックと待機を繰り返すことにまだうんざりしていませんか? マイティを試してみてください
Selenium
!Web ページ自動化テストを簡単かつ楽しいものにしましょう。
1. Selenium ライブラリとは正確には何ですか?
Selenium は、ブラウザを直接操作して Web ページと対話するさまざまなタスクを実行できる強力な自動テスト ツールです。Python の Selenium ライブラリを使用すると、Web ページのテストを効率的に自動化し、時間と労力を大幅に節約できます。
1.1 Seleniumライブラリの主な機能
-
自動テスト: ボタンのクリック、テキストの入力、ドロップダウン メニューの選択など、Web サイトの自動機能テストを実現できます。
-
Web クローラー: ログインが必要な Web サイトやクロール防止メカニズムが備わっている一部の Web サイトの場合、Selenium を使用すると簡単に対処できます。
-
自動化されたタスク: 定期的に Web サイトにアクセスする、フォームを自動的に送信するなど。
1.2 Seleniumライブラリの利点
-
複数のプログラミング言語をサポート: Python、Java、C#、Ruby など。
-
複数のブラウザをサポート: Chrome、Firefox、Edge、Safari など。
-
クロスプラットフォーム: Windows、macOS、Linux。
-
コミュニティは活発で、継続的に更新および維持されています。
2 番目に、Selenium ライブラリのインストールと構成
2.1 Selenium ライブラリをインストールする
Selenium ライブラリをインストールする前に、Python がインストールされていることを確認してください。次に、ターミナルまたはコマンド プロンプトを開いて次のコマンドを入力して、Selenium ライブラリをインストールします。
pip install selenium
2.2 ブラウザドライバの設定
Selenium を使用してブラウザを制御するには、対応するブラウザ ドライバもインストールする必要があります。ここでは Chrome ブラウザを例として使用しますが、他のブラウザ ドライバのインストール方法も同様です。
-
Chrome ドライバーをダウンロードする: ChromeDriver を検索し、ダウンロード ページで Chrome ブラウザーのバージョンに一致するドライバーを選択します。
-
ダウンロードした圧縮パッケージを解凍し、解凍した ファイルを(macOS、Linux) または (Windows)
chromedriver
などの実行可能パスに 配置します。/usr/local/bin
C:\Windows
3. 基本的な操作には Selenium ライブラリを使用します
3.1 ブラウザを起動する
Selenium webdriver
モジュールをインポートし、Chrome ドライバー オブジェクトをインスタンス化して Chrome ブラウザを起動します。
from selenium import webdriver
driver = webdriver.Chrome()
3.2 Web ページを開く
get
使用方法では 、ターゲット URL を渡して、ブラウザーに URL を開かせるようにします。
driver.get("https://www.baidu.com")
3.3 ページ要素の配置
Selenium には、ページ要素を見つけるためのさまざまなメソッド ( find_element_by_id
、 など)find_element_by_name
が用意されています。find_element_by_class_name
ここでは、Baidu 検索ボックスを例として、次の find_element_by_id
方法を使用して検索します。
search_box = driver.find_element_by_id("kw")
3.4 ページ要素の操作
ページ要素を見つけたら、テキストの入力やボタンのクリックなど、その要素に対してさまざまな操作を実行できます。検索キーワードの入力例は次のとおりです。
search_box.send_keys("Selenium")
3.5 フォームを送信する
検索ボックスにキーワードを入力した後、「Baidu クリック」ボタンをクリックしてフォームを送信する必要もあります。ここでは、 find_element_by_id
メソッドを使用してボタンを見つけてから、 click
メソッドをクリックして使用します。
search_button = driver.find_element_by_id("su")
search_button.click()
3.6 ページのロードを待機しています
自動テストを実行する場合、多くの場合、ページが読み込まれるまで待機する必要があります。Selenium は、明示的待機と暗黙的待機という 2 つの待機方法を提供します。
3.6.1 明示的な待機
明示的な待機では、ターゲット要素が見つかるまで、指定された時間、ターゲット要素の検索を試行し続けます。検索結果が表示されるまで待機する例を次に示します。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "content_left"))
)
except TimeoutException:
print("等待超时!")
3.6.2 暗黙的な待機
暗黙的な待機は、要素の検索中に例外をスローする前に、指定された時間待機します。検索結果が表示されるまで待機する例を次に示します。
driver.implicitly_wait(10)
content_left = driver.find_element_by_id("content_left")
3.7 ページ情報の取得
ページのタイトル、URL、ソース コード、その他の情報を取得します。
title = driver.title
url = driver.current_url
source = driver.page_source
print("标题:", title)
print("URL:", url)
3.8 ブラウザを閉じる
すべてが完了したら、ブラウザを閉じることを忘れないでください。
driver.quit()
4. Seleniumライブラリの高度な応用
4.1 ウィンドウの切り替え
自動テストを実行する場合、新しく開いたウィンドウに切り替えることが必要になる場合があります。以下は、Baidu のホームページの下部にある [Baidu について] リンクをクリックして、ウィンドウを切り替える方法を示す例です。
from selenium.webdriver.common.keys import Keys
about_link = driver.find_element_by_link_text("关于百度")
about_link.send_keys(Keys.CONTROL + Keys.RETURN)
driver.switch_to.window(driver.window_handles[-1])
4.2 スイッチフレーム
Web ページによっては、ページをネストするために Frame を使用する場合がありますが、その場合は対応する Frame に切り替えて要素を操作する必要があります。switch_to.frame
次のメソッドを使用してフレームを切り替えることができます 。
driver.switch_to.frame("frame_name")
メイン ページに戻るには、 switch_to.default_content
次の方法を使用できます。
driver.switch_to.default_content()
4.3 JavaScript コードの実行
場合によっては、ページのスクロール、要素属性の変更などの特定の機能を実現するために、JavaScript コードの実行が必要になることがあります。ページをスクロールする例を次に示します。
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
5. 技術概要
この記事の導入により、自動テスト、ブラウザ ドライバー、ページ インタラクションなど、Selenium ライブラリの基本的な知識を習得できたと思います。Python + Selenium を使用して Web ページのテストを簡単に自動化できるようになりました。
この記事についてご意見やご質問はありますか? コメント欄にメッセージを残して議論することを歓迎します。
最後に: 以下の完全なソフトウェア テスト ビデオ学習チュートリアルが整理されてアップロードされており、必要な場合は友人が無料で入手できます。【保证100%免费】
これらの資料は、[ソフトウェア テスト] の友人にとって、最も包括的かつ完全な準備倉庫となるはずです。この倉庫は、最も困難な旅を乗り越える何万人ものテスト エンジニアにも同行してきました。そして、あなたにも役立つことを願っています。