--- title: WebDriver slug: Web/WebDriver tags: - Automation - Index - Landing - Reference - Testing - Web - WebDriver - 自動化 translation_of: Web/WebDriver --- <p class="summary">WebDriver は、ユーザーエージェントの観察と制御を可能にする遠隔制御インターフェイスです。プロセスの外のプログラムがウェブブラウザーの動作を遠隔で指示する方法として、プラットフォームと言語に中立なワイヤープロトコルを提供します。</p> <p>ユーザーに一貫した使い勝手を提供するには、異なるプラットフォーム上の多くのブラウザーで相互に実行できる命令セットを書くことができることが重要です。ウェブプラットフォームでの新しい開発の波、端末の多様性の増加、テクノロジー間の実際の相互運用性の要求を背景に、 WebDriver は<a href="/ja/Learn/Tools_and_testing/Cross_browser_testing/Introduction">クロスブラウザーテスト</a>のためののツールを提供します。</p> <p>提供されるものは、ウェブ文書内の DOM 要素を検出したり操作したり、ユーザーエージェントの動作を制御したりするためのインターフェイスです。これは主に、ユーザーエージェントを別な制御プロセスから自動制御するテストを、ウェブ作者が書くことができるようにすることが目的ですが、場合によってはブラウザー内のスクリプトが — おそらく他の — ブラウザーを制御するために使用することもできます。</p> <h2 id="Usage" name="Usage">使い方</h2> <p>それでは、 WebDriver で何が実現でき、どのように見えるのでしょうか。 WebDriver はプログラミング言語に中立なので、この質問に対する答えは、<a href="/ja/docs/Web/WebDriver/Clients">使用している WebDriver クライアント</a>と言語の選択によって異なります。</p> <p>しかし、 Python で書かれた有名なクライアントを使用すると、 WebDriver との対話は次のようになるでしょう。</p> <pre>from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support.expected_conditions import presence_of_element_located wait = WebDriverWait(driver, 10) with webdriver.Firefox() as driver: driver.get("http://google.com/ncr") driver.find_element_by_name("q").send_keys("cheese" + Keys.RETURN) wait.until(presence_of_element_located((By.CSS_SELECTOR, "h3>a"))) results = driver.find_elements_by_css_selector("h3>a") for i, result in results.iteritems(): print("#{}: {} ({})".format(i, result.text, result.get_property("href")))</pre> <p>これは次のような出力結果になります。</p> <pre>#1 Cheese - Wikipedia (https://en.wikipedia.org/wiki/Cheese) </pre> <h2 id="Reference" name="Reference">リファレンス</h2> <div class="column-container"> <div class="column-half"> <h3 id="Commands" name="Commands"><a href="/ja/docs/Web/WebDriver/Commands">コマンド</a></h3> <p>{{ListSubpages("/ja/docs/Web/WebDriver/Commands")}}</p> <h3 id="Types" name="Types"><a href="/ja/docs/Web/WebDriver/Types">種類</a></h3> <ul> <li><a href="/ja/docs/Web/WebDriver/Errors#payload">Error object</a></li> <li><a href="/ja/docs/Web/WebDriver/Timeouts">Timeouts object</a></li> <li><a href="/ja/docs/Web/WebDriver/WebElement">WebElement</a></li> <li><a href="/ja/docs/Web/WebDriver/WebWindow">WebWindow</a></li> </ul> </div> <div class="column-half"> <h3 id="Capabilities" name="Capabilities"><a href="/ja/docs/Web/WebDriver/Capabilities">能力</a></h3> <p>{{ListSubpages("/ja/docs/Web/WebDriver/Capabilities")}}</p> <h3 id="Errors" name="Errors"><a href="/ja/docs/Web/WebDriver/Errors">エラー</a></h3> <p>{{ListSubpages("/ja/docs/Web/WebDriver/Errors")}}</p> </div> </div> <h2 id="Specifications" name="Specifications">仕様書</h2> <table class="standard-table"> <tbody> <tr> <th scope="col">仕様書</th> <th scope="col">状態</th> <th scope="col">備考</th> </tr> <tr> <td>{{SpecName('WebDriver')}}</td> <td>{{Spec2('WebDriver')}}</td> <td>初回定義</td> </tr> </tbody> </table> <h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> <div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> <p>{{Compat("webdriver", 2)}}</p> <h2 id="See_also" name="See_also">関連情報</h2> <ul> <li><a href="/ja/docs/Learn/Tools_and_testing/Cross_browser_testing">クロスブラウザーテスト</a></li> <li><a href="https://seleniumhq.github.io/docs/">Selenium documentation</a> (制作中)</li> </ul> <p>{{QuickLinksWithSubpages}}</p>