Seleniumコードの整理と実行 IDEとテストランナーライブラリを使用したSelenium実行のスケーリング
一握り以上の 1 回限りのスクリプトを実行する場合は、コードを整理して操作できる必要があります。このページでは、Seleniumコードを使用して実際に生産的なことを行う方法についてのアイデアを提供します。
一般的な用途 ほとんどの人はSeleniumを使用してWebアプリケーションの自動テストを実行します。
しかし、Seleniumはブラウザ自動化のあらゆるユースケースをサポートします。
反復タスク おそらく、Webサイトにログインして何かをダウンロードするか、フォームを送信する必要があります。
Selenium スクリプトを作成して、あらかじめ設定された時間にサービスと共に実行できます。
Webスクレイピング APIがないサイトからデータを収集したいとお考えですか?セレン
これを行うことができますが、Webサイトに精通していることを確認してください。
一部のWebサイトでは許可されておらず、他のWebサイトではSeleniumがブロックされることさえあります。
テスティング テストのためにSeleniumを実行するには、Seleniumが実行したアクションに対してアサーションを行う必要があります。
したがって、優れたアサーションライブラリが必要です。テストの構造を提供する追加機能
使用する必要があります Test Runner .
IDEs Seleniumコードの使用方法に関係なく、優れた統合開発環境がなければ、Seleniumコードの作成や実行はあまり効果的ではありません。一般的なオプションを次に示します…
Test Runner テストにSeleniumを使用していない場合でも、高度なユースケースがある場合は、テストランナーを使用してコードをより適切に整理するのが理にかなっている場合があります。before/after フックを使用して、グループまたは並行して物事を実行できると非常に便利です。
卜 さまざまなテストランナーが利用可能です。
このドキュメントのすべてのコード例は、
テストランナーを使用し、すべてのコードが正しく更新されていることを確認するためにリリースごとに実行されるディレクトリの例。
リンク付きのテストランナーのリストを次に示します。最初の項目は、このリポジトリで使用される項目と
このページのすべての例で使用されます。
Java 
Python 
CSharp 
Ruby 
JavaScript 
Kotlin JUnit  - JavaベースのSeleniumテストで広く使用されているテストフレームワーク。TestNG  - 並列テスト実行やパラメーター化されたテストなどの追加機能を提供します。pytest  - そのシンプルさと強力なプラグインのおかげで、多くの人に好まれる選択肢です。unittest  - Python の標準ライブラリテストフレームワーク。NUnit  - .NET の一般的な単体テスト フレームワーク。MS Test  - Microsoft 独自の単体テスト フレームワーク。RSpec  - RubyでSeleniumテストを実行するために最も広く使用されているテストライブラリ。Minitest  - Ruby標準ライブラリに付属する軽量なテストフレームワークです。Jest  - 主にReactのテストフレームワークとして知られていますが、Seleniumのテストにも使用できます。Mocha  - Seleniumテストを実行するための最も一般的なJSライブラリ。Kotest  - Kotlin専用に設計された、柔軟で包括的なテストフレームワークです。JUnit5  - 標準的なJavaテストフレームワークであり、Kotlinと完全に互換性があります。装着 これは、で必要とされたものと非常によく似ています Seleniumライブラリのインストール 。このコードは、私たちのドキュメント例プロジェクトで使用されているものの例を示しているだけです。
Java 
Python 
CSharp 
Ruby 
JavaScript 
Kotlin プロジェクトで使用するには、requirements.txt ファイルに追加します:
プロジェクトの ‘csproj’ ファイルで、依存関係を ‘ItemGroup’ の ‘PackageReference’ として指定します:
プロジェクトの ‘package.json’ で、要件を ‘dependencies’ に追加します。:
主張 
Java 
Python 
CSharp 
Ruby 
JavaScript 
Kotlin 		 String   title   =   driver . getTitle (); 
 		 assertEquals ( "Web form" ,   title ); examples/java/src/test/java/dev/selenium/getting_started/UsingSeleniumTest.java 
Copy
 
Close 
package   dev.selenium.getting_started ; 
 
 import static   org.junit.jupiter.api.Assertions.assertEquals ; 
 
 import   java.time.Duration ; 
 
 import   org.junit.jupiter.api.AfterEach ; 
 import   org.junit.jupiter.api.BeforeEach ; 
 import   org.junit.jupiter.api.Test ; 
 import   org.openqa.selenium.By ; 
 import   org.openqa.selenium.WebDriver ; 
 import   org.openqa.selenium.WebElement ; 
 import   org.openqa.selenium.chrome.ChromeDriver ; 
 
 public   class  UsingSeleniumTest   { 
 
 	 WebDriver   driver ; 
 
 	 @BeforeEach 
 	 public   void   setup ()   { 
 		 driver   =   new   ChromeDriver (); 
 	 } 
 
 	 @Test 
 	 public   void   eightComponents ()   { 
 
 		 driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 )); 
 		 driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" ); 
 
 		 String   title   =   driver . getTitle (); 
 		 assertEquals ( "Web form" ,   title ); 
 
 		 WebElement   textBox   =   driver . findElement ( By . name ( "my-text" )); 
 		 WebElement   submitButton   =   driver . findElement ( By . cssSelector ( "button" )); 
 
 		 textBox . sendKeys ( "Selenium" ); 
 		 submitButton . click (); 
 
 		 WebElement   message   =   driver . findElement ( By . id ( "message" )); 
 		 String   value   =   message . getText (); 
 		 assertEquals ( "Received!" ,   value ); 
 
 	 } 
 
 	 @AfterEach 
 	 public   void   teardown ()   { 
 		 driver . quit (); 
 	 } 
 
 } 
     title  =  driver . title 
     assert  title  ==  "Web form"  examples/python/tests/getting_started/using_selenium_tests.py 
Copy
 
Close 
from  selenium  import  webdriver 
from  selenium.webdriver.common.by  import  By 
 
 def  test_eight_components (): 
    driver  =  setup () 
 
     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!" 
 
     teardown ( driver ) 
 
 def  setup (): 
    driver  =  webdriver . Chrome () 
     driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" ) 
     return  driver 
 
 def  teardown ( driver ): 
    driver . quit () 
             var  title  =  driver . Title ; 
             Assert . AreEqual ( "Web form" ,  title );  examples/dotnet/SeleniumDocs/GettingStarted/UsingSeleniumTest.cs 
Copy
 
Close 
using  System ; 
using  Microsoft.VisualStudio.TestTools.UnitTesting ; 
using  OpenQA.Selenium ; 
using  OpenQA.Selenium.Chrome ; 
 namespace  SeleniumDocs.GettingStarted 
{ 
    [TestClass] 
    public  class  UsingSeleniumTest 
     { 
 
         [TestMethod] 
        public  void  EightComponents () 
         { 
             IWebDriver  driver  =  new  ChromeDriver (); 
 
             driver . Navigate (). GoToUrl ( "https://www.selenium.dev/selenium/web/web-form.html" ); 
 
             var  title  =  driver . Title ; 
             Assert . AreEqual ( "Web form" ,  title ); 
 
             driver . Manage (). Timeouts (). ImplicitWait  =  TimeSpan . FromMilliseconds ( 500 ); 
 
             var  textBox  =  driver . FindElement ( By . Name ( "my-text" )); 
             var  submitButton  =  driver . FindElement ( By . TagName ( "button" )); 
             
             textBox . SendKeys ( "Selenium" ); 
             submitButton . Click (); 
             
             var  message  =  driver . FindElement ( By . Id ( "message" )); 
             var  value  =  message . Text ; 
             Assert . AreEqual ( "Received!" ,  value ); 
             
             driver . Quit (); 
         } 
     } 
 }     title  =  @driver . title 
     expect ( title ) . to  eq ( 'Web form' )  examples/ruby/spec/getting_started/using_selenium_spec.rb 
Copy
 
Close 
# frozen_string_literal: true 
 require  'spec_helper' 
require  'selenium-webdriver' 
 RSpec . describe  'Using Selenium'  do 
  before  do 
     @driver  =  Selenium :: WebDriver . for  :chrome 
   end 
 
   it  'uses eight components'  do 
     @driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' ) 
 
     title  =  @driver . title 
     expect ( title ) . to  eq ( 'Web form' ) 
 
     @driver . manage . timeouts . implicit_wait  =  500 
 
     text_box  =  @driver . find_element ( name :  'my-text' ) 
     submit_button  =  @driver . find_element ( tag_name :  'button' ) 
 
     text_box . send_keys ( 'Selenium' ) 
     submit_button . click 
 
     message  =  @driver . find_element ( id :  'message' ) 
     value  =  message . text 
     expect ( value ) . to  eq ( 'Received!' ) 
   end 
 end 
    let  title  =  await  driver . getTitle (); 
     assert . equal ( "Web form" ,  title );  examples/javascript/test/getting_started/runningTests.spec.js 
Copy
 
Close 
const  { By ,  Builder }  =  require ( 'selenium-webdriver' ); 
const  assert  =  require ( "assert" ); 
 describe ( 'First script' ,  function  ()  { 
  let  driver ; 
 
   before ( async  function  ()  { 
     driver  =  await  new  Builder (). forBrowser ( 'chrome' ). build (); 
   }); 
 
   it ( 'First Selenium script with mocha' ,  async  function  ()  { 
     await  driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' ); 
 
     let  title  =  await  driver . getTitle (); 
     assert . equal ( "Web form" ,  title ); 
 
     await  driver . manage (). setTimeouts ({ implicit :  500 }); 
 
     let  textBox  =  await  driver . findElement ( By . name ( 'my-text' )); 
     let  submitButton  =  await  driver . findElement ( By . css ( 'button' )); 
 
     await  textBox . sendKeys ( 'Selenium' ); 
     await  submitButton . click (); 
 
     let  message  =  await  driver . findElement ( By . id ( 'message' )); 
     let  value  =  await  message . getText (); 
     assert . equal ( "Received!" ,  value ); 
   }); 
 
   after ( async  ()  =>  await  driver . quit ()); 
 });         val  title  =  driver . title 
         assertEquals ( "Web form" ,  title )  examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt 
Copy
 
Close 
package  dev.selenium.getting_started 
 import  org.junit.jupiter.api.* 
import  org.junit.jupiter.api.Assertions.assertEquals 
import  org.openqa.selenium.By 
import  org.openqa.selenium.WebDriver 
import  org.openqa.selenium.chrome.ChromeDriver 
import  java.time.Duration 
 @TestInstance ( TestInstance . Lifecycle . PER_CLASS ) 
class  FirstScriptTest  { 
    private  lateinit  var  driver :  WebDriver 
 
     @Test 
     fun  eightComponents ()  { 
         driver  =  ChromeDriver () 
 
         driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" ) 
 
         val  title  =  driver . title 
         assertEquals ( "Web form" ,  title ) 
 
         driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 )) 
 
         var  textBox  =  driver . findElement ( By . name ( "my-text" )) 
         val  submitButton  =  driver . findElement ( By . cssSelector ( "button" )) 
 
         textBox . sendKeys ( "Selenium" ) 
         submitButton . click () 
 
         val  message  =  driver . findElement ( By . id ( "message" )) 
         val  value  =  message . getText () 
         assertEquals ( "Received!" ,  value ) 
 
         driver . quit () 
     } 
 
 } セットアップとティアダウン 
Java 
Python 
CSharp 
Ruby 
JavaScript 
Kotlin 並べる 	 @BeforeEach 
 	 public   void   setup ()   { 
 		 driver   =   new   ChromeDriver (); 
 	 } examples/java/src/test/java/dev/selenium/getting_started/UsingSeleniumTest.java 
Copy
 
Close 
package   dev.selenium.getting_started ; 
 
 import static   org.junit.jupiter.api.Assertions.assertEquals ; 
 
 import   java.time.Duration ; 
 
 import   org.junit.jupiter.api.AfterEach ; 
 import   org.junit.jupiter.api.BeforeEach ; 
 import   org.junit.jupiter.api.Test ; 
 import   org.openqa.selenium.By ; 
 import   org.openqa.selenium.WebDriver ; 
 import   org.openqa.selenium.WebElement ; 
 import   org.openqa.selenium.chrome.ChromeDriver ; 
 
 public   class  UsingSeleniumTest   { 
 
 	 WebDriver   driver ; 
 
 	 @BeforeEach 
 	 public   void   setup ()   { 
 		 driver   =   new   ChromeDriver (); 
 	 } 
 
 	 @Test 
 	 public   void   eightComponents ()   { 
 
 		 driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 )); 
 		 driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" ); 
 
 		 String   title   =   driver . getTitle (); 
 		 assertEquals ( "Web form" ,   title ); 
 
 		 WebElement   textBox   =   driver . findElement ( By . name ( "my-text" )); 
 		 WebElement   submitButton   =   driver . findElement ( By . cssSelector ( "button" )); 
 
 		 textBox . sendKeys ( "Selenium" ); 
 		 submitButton . click (); 
 
 		 WebElement   message   =   driver . findElement ( By . id ( "message" )); 
 		 String   value   =   message . getText (); 
 		 assertEquals ( "Received!" ,   value ); 
 
 	 } 
 
 	 @AfterEach 
 	 public   void   teardown ()   { 
 		 driver . quit (); 
 	 } 
 
 } 
 取り壊す 	 @AfterEach 
 	 public   void   teardown ()   { 
 		 driver . quit (); 
 	 } examples/java/src/test/java/dev/selenium/getting_started/UsingSeleniumTest.java 
Copy
 
Close 
package   dev.selenium.getting_started ; 
 
 import static   org.junit.jupiter.api.Assertions.assertEquals ; 
 
 import   java.time.Duration ; 
 
 import   org.junit.jupiter.api.AfterEach ; 
 import   org.junit.jupiter.api.BeforeEach ; 
 import   org.junit.jupiter.api.Test ; 
 import   org.openqa.selenium.By ; 
 import   org.openqa.selenium.WebDriver ; 
 import   org.openqa.selenium.WebElement ; 
 import   org.openqa.selenium.chrome.ChromeDriver ; 
 
 public   class  UsingSeleniumTest   { 
 
 	 WebDriver   driver ; 
 
 	 @BeforeEach 
 	 public   void   setup ()   { 
 		 driver   =   new   ChromeDriver (); 
 	 } 
 
 	 @Test 
 	 public   void   eightComponents ()   { 
 
 		 driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 )); 
 		 driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" ); 
 
 		 String   title   =   driver . getTitle (); 
 		 assertEquals ( "Web form" ,   title ); 
 
 		 WebElement   textBox   =   driver . findElement ( By . name ( "my-text" )); 
 		 WebElement   submitButton   =   driver . findElement ( By . cssSelector ( "button" )); 
 
 		 textBox . sendKeys ( "Selenium" ); 
 		 submitButton . click (); 
 
 		 WebElement   message   =   driver . findElement ( By . id ( "message" )); 
 		 String   value   =   message . getText (); 
 		 assertEquals ( "Received!" ,   value ); 
 
 	 } 
 
 	 @AfterEach 
 	 public   void   teardown ()   { 
 		 driver . quit (); 
 	 } 
 
 } 
 並べる def  setup (): 
    driver  =  webdriver . Chrome () 
     driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" ) 
     return  driver  examples/python/tests/getting_started/using_selenium_tests.py 
Copy
 
Close 
from  selenium  import  webdriver 
from  selenium.webdriver.common.by  import  By 
 
 def  test_eight_components (): 
    driver  =  setup () 
 
     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!" 
 
     teardown ( driver ) 
 
 def  setup (): 
    driver  =  webdriver . Chrome () 
     driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" ) 
     return  driver 
 
 def  teardown ( driver ): 
    driver . quit () 
 取り壊す def  teardown ( driver ): 
    driver . quit ()  examples/python/tests/getting_started/using_selenium_tests.py 
Copy
 
Close 
from  selenium  import  webdriver 
from  selenium.webdriver.common.by  import  By 
 
 def  test_eight_components (): 
    driver  =  setup () 
 
     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!" 
 
     teardown ( driver ) 
 
 def  setup (): 
    driver  =  webdriver . Chrome () 
     driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" ) 
     return  driver 
 
 def  teardown ( driver ): 
    driver . quit () 
 並べる   before  do 
     @driver  =  Selenium :: WebDriver . for  :chrome 
   end  examples/ruby/spec/getting_started/using_selenium_spec.rb 
Copy
 
Close 
# frozen_string_literal: true 
 require  'spec_helper' 
require  'selenium-webdriver' 
 RSpec . describe  'Using Selenium'  do 
  before  do 
     @driver  =  Selenium :: WebDriver . for  :chrome 
   end 
 
   it  'uses eight components'  do 
     @driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' ) 
 
     title  =  @driver . title 
     expect ( title ) . to  eq ( 'Web form' ) 
 
     @driver . manage . timeouts . implicit_wait  =  500 
 
     text_box  =  @driver . find_element ( name :  'my-text' ) 
     submit_button  =  @driver . find_element ( tag_name :  'button' ) 
 
     text_box . send_keys ( 'Selenium' ) 
     submit_button . click 
 
     message  =  @driver . find_element ( id :  'message' ) 
     value  =  message . text 
     expect ( value ) . to  eq ( 'Received!' ) 
   end 
 end 
取り壊す   config . after  {  @driver &. quit  }  examples/ruby/spec/spec_helper.rb 
Copy
 
Close 
# frozen_string_literal: true 
 require  'selenium-webdriver' 
require  'selenium/webdriver/support/guards' 
 RSpec . configure  do  | config | 
  # Enable flags like --only-failures and --next-failure 
   config . example_status_persistence_file_path  =  '.rspec_status' 
 
   # Disable RSpec exposing methods globally on `Module` and `main` 
   config . disable_monkey_patching! 
   Dir . mktmpdir ( 'tmp' ) 
   config . example_status_persistence_file_path  =  'tmp/examples.txt' 
 
   config . expect_with  :rspec  do  | c | 
     c . syntax  =  :expect 
   end 
 
   config . before  do  | example | 
     bug_tracker  =  'https://github.com/SeleniumHQ/seleniumhq.github.io/issues' 
     guards  =  Selenium :: WebDriver :: Support :: Guards . new ( example , 
                                                       bug_tracker :  bug_tracker ) 
     guards . add_condition ( :platform ,  Selenium :: WebDriver :: Platform . os ) 
     guards . add_condition ( :ci ,  Selenium :: WebDriver :: Platform . ci ) 
 
     results  =  guards . disposition 
     send ( * results )  if  results 
   end 
 
   config . after  {  @driver &. quit  } 
 
   def  start_session 
     options  =  Selenium :: WebDriver :: Chrome :: Options . new 
     options . add_argument ( 'disable-search-engine-choice-screen' ) 
     options . add_argument ( '--no-sandbox' ) 
     @driver  =  Selenium :: WebDriver . for ( :chrome ,  options :  options ) 
   end 
 
   def  start_bidi_session 
     options  =  Selenium :: WebDriver :: Chrome :: Options . new ( web_socket_url :  true ) 
     @driver  =  Selenium :: WebDriver . for  :chrome ,  options :  options 
   end 
 
   def  start_firefox 
     options  =  Selenium :: WebDriver :: Options . firefox ( timeouts :  { implicit :  1500 }) 
     @driver  =  Selenium :: WebDriver . for  :firefox ,  options :  options 
   end 
 end 
### 並べる
  before ( async  function  ()  { 
     driver  =  await  new  Builder (). forBrowser ( 'chrome' ). build (); 
   });  examples/javascript/test/getting_started/runningTests.spec.js 
Copy
 
Close 
const  { By ,  Builder }  =  require ( 'selenium-webdriver' ); 
const  assert  =  require ( "assert" ); 
 describe ( 'First script' ,  function  ()  { 
  let  driver ; 
 
   before ( async  function  ()  { 
     driver  =  await  new  Builder (). forBrowser ( 'chrome' ). build (); 
   }); 
 
   it ( 'First Selenium script with mocha' ,  async  function  ()  { 
     await  driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' ); 
 
     let  title  =  await  driver . getTitle (); 
     assert . equal ( "Web form" ,  title ); 
 
     await  driver . manage (). setTimeouts ({ implicit :  500 }); 
 
     let  textBox  =  await  driver . findElement ( By . name ( 'my-text' )); 
     let  submitButton  =  await  driver . findElement ( By . css ( 'button' )); 
 
     await  textBox . sendKeys ( 'Selenium' ); 
     await  submitButton . click (); 
 
     let  message  =  await  driver . findElement ( By . id ( 'message' )); 
     let  value  =  await  message . getText (); 
     assert . equal ( "Received!" ,  value ); 
   }); 
 
   after ( async  ()  =>  await  driver . quit ()); 
 }); ### 取り壊す
  after ( async  ()  =>  await  driver . quit ());  examples/javascript/test/getting_started/runningTests.spec.js 
Copy
 
Close 
const  { By ,  Builder }  =  require ( 'selenium-webdriver' ); 
const  assert  =  require ( "assert" ); 
 describe ( 'First script' ,  function  ()  { 
  let  driver ; 
 
   before ( async  function  ()  { 
     driver  =  await  new  Builder (). forBrowser ( 'chrome' ). build (); 
   }); 
 
   it ( 'First Selenium script with mocha' ,  async  function  ()  { 
     await  driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' ); 
 
     let  title  =  await  driver . getTitle (); 
     assert . equal ( "Web form" ,  title ); 
 
     await  driver . manage (). setTimeouts ({ implicit :  500 }); 
 
     let  textBox  =  await  driver . findElement ( By . name ( 'my-text' )); 
     let  submitButton  =  await  driver . findElement ( By . css ( 'button' )); 
 
     await  textBox . sendKeys ( 'Selenium' ); 
     await  submitButton . click (); 
 
     let  message  =  await  driver . findElement ( By . id ( 'message' )); 
     let  value  =  await  message . getText (); 
     assert . equal ( "Received!" ,  value ); 
   }); 
 
   after ( async  ()  =>  await  driver . quit ()); 
 }); 実行 
Java 
Python 
CSharp 
Ruby 
JavaScript 
Kotlin examples/python/README.md 
Copy
 
Close 
# Running tests from Selenium Python examples
 #### 1. Clone this repository
 ```
 ``` 
 #### 2. Navigate to `python` directory
 ```
 ``` 
 #### 3. Create a virtual environment
 -  On Windows:
 ```
 venv\Scripts\activate
 ``` 
 -  On Linux/Mac:
 ```
 source venv/bin/activate
 ``` 
 #### 4. Install dependencies:
 ```
 ``` 
 >  for help, see: https://packaging.python.org/en/latest/tutorials/installing-packages
 #### 5. Run tests
 -  Run all tests with the default Python interpreter:
 ```
 ``` 
 -  Run all tests with every installed/supported Python interpreter:
 ```
 ``` 
 >  Please have some patience - If you are doing it for the first time, it will take a little while to download the browser drivers
 -  Run a specific example:
 ```
 ``` 
 >  Make sure to replace `path/to/test_script.py` with the path and name of the example you want to run
 examples/ruby/README.md 
Copy
 
Close 
# Running all tests from Selenium ruby example
 Follow these steps to run all test example from selenium ruby
 
 1.  Clone this repository
 ```
 ``` 
 2.  Navigate to `ruby`  directory
 ```
 ``` 
 3.  Install dependencies using bundler
 ```
 ``` 
 4.  Run all tests
 ```
 ``` 
 >  Please keep some patience - If you are doing it for the first time, it will take a little while to verify and download the browser drivers
 # Execute a ruby script
 Use this command to run a ruby script and follow the first script example
 
 ```
 ``` Mocha mocha runningTests.spec.js
 npx npx mocha runningTests.spec.js
 例 最初のスクリプト のトピックでは、Seleniumスクリプトの各コンポーネントを見ました。こちらが、テストランナーを使用したそのコードの例です。
Java 
Python 
CSharp 
Ruby 
JavaScript 
Kotlin package   dev.selenium.getting_started ; 
 
 import static   org.junit.jupiter.api.Assertions.assertEquals ; 
 
 import   java.time.Duration ; 
 
 import   org.junit.jupiter.api.AfterEach ; 
 import   org.junit.jupiter.api.BeforeEach ; 
 import   org.junit.jupiter.api.Test ; 
 import   org.openqa.selenium.By ; 
 import   org.openqa.selenium.WebDriver ; 
 import   org.openqa.selenium.WebElement ; 
 import   org.openqa.selenium.chrome.ChromeDriver ; 
 
 public   class  UsingSeleniumTest   { 
 
 	 WebDriver   driver ; 
 
 	 @BeforeEach 
 	 public   void   setup ()   { 
 		 driver   =   new   ChromeDriver (); 
 	 } 
 
 	 @Test 
 	 public   void   eightComponents ()   { 
 
 		 driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 )); 
 		 driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" ); 
 
 		 String   title   =   driver . getTitle (); 
 		 assertEquals ( "Web form" ,   title ); 
 
 		 WebElement   textBox   =   driver . findElement ( By . name ( "my-text" )); 
 		 WebElement   submitButton   =   driver . findElement ( By . cssSelector ( "button" )); 
 
 		 textBox . sendKeys ( "Selenium" ); 
 		 submitButton . click (); 
 
 		 WebElement   message   =   driver . findElement ( By . id ( "message" )); 
 		 String   value   =   message . getText (); 
 		 assertEquals ( "Received!" ,   value ); 
 
 	 } 
 
 	 @AfterEach 
 	 public   void   teardown ()   { 
 		 driver . quit (); 
 	 } 
 
 } 
 from  selenium  import  webdriver 
from  selenium.webdriver.common.by  import  By 
 
 def  test_eight_components (): 
    driver  =  setup () 
 
     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!" 
 
     teardown ( driver ) 
 
 def  setup (): 
    driver  =  webdriver . Chrome () 
     driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" ) 
     return  driver 
 
 def  teardown ( driver ): 
    driver . quit () 
 using  System ; 
using  Microsoft.VisualStudio.TestTools.UnitTesting ; 
using  OpenQA.Selenium ; 
using  OpenQA.Selenium.Chrome ; 
 namespace  SeleniumDocs.GettingStarted 
{ 
    [TestClass] 
    public  class  UsingSeleniumTest 
     { 
 
         [TestMethod] 
        public  void  EightComponents () 
         { 
             IWebDriver  driver  =  new  ChromeDriver (); 
 
             driver . Navigate (). GoToUrl ( "https://www.selenium.dev/selenium/web/web-form.html" ); 
 
             var  title  =  driver . Title ; 
             Assert . AreEqual ( "Web form" ,  title ); 
 
             driver . Manage (). Timeouts (). ImplicitWait  =  TimeSpan . FromMilliseconds ( 500 ); 
 
             var  textBox  =  driver . FindElement ( By . Name ( "my-text" )); 
             var  submitButton  =  driver . FindElement ( By . TagName ( "button" )); 
             
             textBox . SendKeys ( "Selenium" ); 
             submitButton . Click (); 
             
             var  message  =  driver . FindElement ( By . Id ( "message" )); 
             var  value  =  message . Text ; 
             Assert . AreEqual ( "Received!" ,  value ); 
             
             driver . Quit (); 
         } 
     } 
 } # frozen_string_literal: true 
 require  'spec_helper' 
require  'selenium-webdriver' 
 RSpec . describe  'Using Selenium'  do 
  before  do 
     @driver  =  Selenium :: WebDriver . for  :chrome 
   end 
 
   it  'uses eight components'  do 
     @driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' ) 
 
     title  =  @driver . title 
     expect ( title ) . to  eq ( 'Web form' ) 
 
     @driver . manage . timeouts . implicit_wait  =  500 
 
     text_box  =  @driver . find_element ( name :  'my-text' ) 
     submit_button  =  @driver . find_element ( tag_name :  'button' ) 
 
     text_box . send_keys ( 'Selenium' ) 
     submit_button . click 
 
     message  =  @driver . find_element ( id :  'message' ) 
     value  =  message . text 
     expect ( value ) . to  eq ( 'Received!' ) 
   end 
 end 
const  { By ,  Builder }  =  require ( 'selenium-webdriver' ); 
const  assert  =  require ( "assert" ); 
 describe ( 'First script' ,  function  ()  { 
  let  driver ; 
 
   before ( async  function  ()  { 
     driver  =  await  new  Builder (). forBrowser ( 'chrome' ). build (); 
   }); 
 
   it ( 'First Selenium script with mocha' ,  async  function  ()  { 
     await  driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' ); 
 
     let  title  =  await  driver . getTitle (); 
     assert . equal ( "Web form" ,  title ); 
 
     await  driver . manage (). setTimeouts ({ implicit :  500 }); 
 
     let  textBox  =  await  driver . findElement ( By . name ( 'my-text' )); 
     let  submitButton  =  await  driver . findElement ( By . css ( 'button' )); 
 
     await  textBox . sendKeys ( 'Selenium' ); 
     await  submitButton . click (); 
 
     let  message  =  await  driver . findElement ( By . id ( 'message' )); 
     let  value  =  await  message . getText (); 
     assert . equal ( "Received!" ,  value ); 
   }); 
 
   after ( async  ()  =>  await  driver . quit ()); 
 }); 次のステップ 学んだことを活かして、Seleniumコードを構築します!
必要な機能が他にも見つかったら、残りの機能をお読みください
WebDriver ドキュメント .