ホームページ  >  記事  >  バックエンド開発  >  Python で Selenium WebDriver を使用する方法

Python で Selenium WebDriver を使用する方法

PHPz
PHPz転載
2023-05-08 22:31:562288ブラウズ

    Selenium WebDriver 入門

    1. Selenium WebDriver とは

    WebDriver は、ユーザーをローカルに、または Selenium サーバーを使用してリモート マシン上で実行することで、ブラウザの自動化が飛躍的に進みます。

    Selenium WebDriver は、言語バインディングと各ブラウザー制御コードの実装を指します。これは、WebDriver と呼ばれることがよくあります。

    Selenium WebDriver は W3C 推奨です。

    • WebDriver は、シンプルかつ簡潔なプログラミング インターフェイスになるように設計されています。

    • WebDriver は、単純なオブジェクト指向 API です。

    • ブラウザを効果的に駆動します。

    2. Selenium WebDriver のインストール

    この記事で使用する環境は python3.11 win10 64 ビット Firefox ブラウザーであるため、この記事で使用するブラウザー ドライバーは Firefox の別のブラウザを使用している場合は、対応するブラウザ ドライバを選択するだけです。

    2.1 Selenium クラス ライブラリをインストールします

    最も簡単な方法は、pip を使用して直接インストールすることです

    pip install selenium

    Python で Selenium WebDriver を使用する方法

    2.2 ブラウザ ドライバーをインストールします

    Selenium は、WebDriver を通じて、Chrome、Firefox、Internet Explorer、Edge、Safari などの市場の主要なブラウザをすべてサポートします。WebDriver は、ブラウザの組み込み自動サポートを使用してブラウザを駆動しようとします。

    インターネットを除く以降エクスプローラー外のすべてのドライバー実装はブラウザー ベンダー自体によって提供されるため、これらのドライバーは標準の Selenium ディストリビューションには含まれていません。このセクションでは、さまざまなブラウザーを使用するための基本的な要件について説明します。

    開く次の URL https://www.selenium.dev/zh-cn/documentation/webdriver/getting_started/install_drivers/

    にブラウザ ドライバをダウンロードするリンクがあり、Selenium でサポートされている複数のブラウザ ドライバが表示されます。 , コンピューターにインストールされているブラウザーに対応するドライバーをダウンロードするだけです。この記事では Firefox を使用するため、Firefox ドライバーを選択してください。

    Python で Selenium WebDriver を使用する方法

    Firefox ドライバーのダウンロード リンクをクリックし、github のリリース ページに移動すると、各バージョンのドライバーが表示されます。この記事は win10 64 ビットであり、選択されたドライバーは1 つは geckodriver-v0. 32.0-win-aarch74.zip で、お使いのシステムに応じて対応するファイルを選択するだけです。

    Python で Selenium WebDriver を使用する方法

    解凍すると、次のような実行可能ファイルになります。

    Python で Selenium WebDriver を使用する方法

    2.3 環境変数の設定

    [マイ コンピューター] -> [プロパティ] -> [システムの詳細設定] -> [環境変数] を開き、パスをダブルクリックして、[新規] をクリックし、ドライバー geckodriver.exe が存在するディレクトリを入力して、[OK] を最後までクリックします。

    Python で Selenium WebDriver を使用する方法

    Python で Selenium WebDriver を使用する方法

    Python で Selenium WebDriver を使用する方法

    # 単純に確認し、新しいコンソールを開いてドライバー ファイル名を入力します。 geckodriver.exe を開くと、通常どおり開くことができます。

    Python で Selenium WebDriver を使用する方法

    もちろん、別の方法もあります。それは、Python ディレクトリ フォルダー内の Scripts ファイルにドライバーを直接入れることです。 Python スクリプトの実行時に直接開くこともできます。たとえば、私のディレクトリは D:\Python\Python311\Scripts

    3 です。最初の Selenium スクリプトを作成します

    Selenium のインストールとドライバーのインストールが完了したら、Selenium スクリプトの作成を開始できます。

    ##Selenium が行うことは、ブラウザにコマンドを送信して何らかのアクションを実行したり、情報を要求したりすることだけです。Selenium で行うことのほとんどは、次の基本コマンドの組み合わせです。

    1. ドライバー インスタンスを使用してセッションを開きます

     driver = webdriver.Firefox()

    2. ブラウザーで操作を実行します

    この例では、Web ページに移動します。

     driver.get("https://www.selenium.dev/selenium/web/web-form.html")

    3. ブラウザー情報を要求します

    ウィンドウ ハンドル、ブラウザのサイズ/場所、Cookie、アラートなど、ブラウザに関する一連の情報をリクエストできます。

     title = driver.title

    4. 待機戦略を作成します

    コードを同期に接続します。ブラウザーの現在の状態は、Selenium の最大の課題の 1 つであり、それを正しく行うことは高度なトピックです。基本的に、要素を配置する前に、要素がページ上にあることを確認する必要があります。要素を操作する前に、その要素がページ上にあることを確認してください。要素はインタラクティブです。暗黙的な待機が最善の解決策であることはほとんどありませんが、ここで説明するのが最も簡単です

     driver.implicitly_wait(0.5)

    5.发送命令 查找元素
    大多数Selenium会话中的主要命令都与元素相关, 如果不先找到元素, 就无法与之交互

     text_box = driver.find_element(by=By.NAME, value="my-text")
     submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")

    6.操作元素
    对于一个元素, 只有少数几个操作可以执行, 但您将经常使用它们

     text_box.send_keys("Selenium")
     submit_button.click()

    7.获取元素信息

     value = message.text

    8.结束会话
    这将结束驱动程序进程, 默认情况下, 该进程也会关闭浏览器. 无法向此驱动程序实例发送更多命令

     driver.quit()

    让我们将这8个部分组合成一个完整的脚本, 包括需要使用的库

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    def test_eight_components():
        driver = webdriver.Firefox()
    
        driver.get("https://www.selenium.dev/selenium/web/web-form.html")
    
        title = driver.title
        assert title == "Web form"
    
        driver.implicitly_wait(0.5)
    
        text_box = driver.find_element(by=By.NAME, value="my-text")
        submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")
    
        text_box.send_keys("Selenium")
        submit_button.click()
    
        message = driver.find_element(by=By.ID, value="message")
        value = message.text
        assert value == "Received!"
    
        driver.quit()

    以上がPython で Selenium WebDriver を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。