2013-04-18 8 views
8

セレンテストの初心者です。私はインターネットエクスプローラ、Firefox、オペラ、クロムに対する複数のブラウザでselenium test casesを実行したい。私はどんなアプローチに従わなければならない。あなたは人々が私に最高のプロセスであることを示唆してください。複数のブラウザに対してセレンのwebdriverテストケースが実行されています

セレンウェブドライバは複数のブラウザをサポートしていますか?

ログインスクリプトを作成しました。それはFirefox、クロム、インターネットエクスプローラのために成功しています。しかし、私はそれらの複数のブラウザのためにそれを順番に実行したい。

+0

私はParametrizedアプローチで複数のブラウザのテストケースを自動化しました。私は[リンク](https://stackoverflow.com/questions/22051705/how-to-parameterize-junit-test-suite/27956177#27956177)に記載されている例を使用しました – Knu8

答えて

3
import org.junit.Test; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.ie.InternetExplorerDriver; 

public class Sample { 
    private WebDriver _driver; 

    @Test 
    public void IEconfiguration() throws Exception { 
     System.setProperty("webdriver.ie.driver", 
     "D:/Softwares/Selenium softwares/drivers/IEDriverServer.exe"); 
     _driver = new InternetExplorerDriver(); 
     login(); 
    } 

    @Test 
    public void FFconfiguration() throws Exception { 
     _driver = new FirefoxDriver(); 
     login(); 
    } 

    @Test 
    public void CRconfiguration() throws Exception { 
     System.setProperty("webdriver.chrome.driver", 
       "D:/Softwares/Selenium softwares/drivers/chromedriver.exe"); 
     _driver = new ChromeDriver(); 
     //_driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS); 
     login(); 
    } 

    public void login() throws Exception { 
     _driver.get("http://www.google.com"); 
    }  
} 

これまで、クロムとインターネットエクスプローラドライバの.exeファイルをインストールして実行する必要がありました。

6

ウェブドライバはまた、携帯

ChromeDriver

IEDiver

FirefoxDriver

OperaDriver

AndroidDriver

のためにそこにサポートされ、当然の複数のブラウザをサポートしています

ここでは、複数のブラウザで同じテストを実行する例を示します。

package ma.glasnost.test; 

import org.openqa.selenium.remote.DesiredCapabilities; 
import org.openqa.selenium.remote.RemoteWebDriver; 
     ......... 
DesiredCapabilities[] browserList = {DesiredCapabilities.chrome(),DesiredCapabilities.firefox(),DesiredCapabilities.internetExplorer(), DesiredCapabilities.opera()}; 
for (DesiredCapabilities browser : browserList) 
{ 
    try { 
     System.out.println("Testing in Browser: "+browser.getBrowserName()); 
     driver = new RemoteWebDriver(new URL("http://127.0.0.1:8080/..."), browser); 

+0

あなたの返信@Khalil ..ありがとうサンプルサンプルを提供してください。 – user1441341

+0

ちょうどあなたがしたい、あなたが使用するブラウザを与えると私は例を与えるだろう。注意:もし私があなたが各ブラウザドライバのために始めることを投稿するリンクを見てください。どんな浄化のために私に再度尋ねることを教えてはいけません。 – Khalil

+0

上記の私の編集した質問を見てください... – user1441341

2

あなたはここにWebDriver ExtensionsフレームワークのJUnitRunner

を使用することができ、 "Hello World" の

@RunWith(WebDriverRunner.class) 
@Firefox 
@Chrome 
@InternetExplorer 
public class WebDriverExtensionsExampleTest { 

    // Model 
    @FindBy(name = "q") 
    WebElement queryInput; 
    @FindBy(name = "btnG") 
    WebElement searchButton; 
    @FindBy(id = "search") 
    WebElement searchResult; 

    @Test 
    public void searchGoogleForHelloWorldTest() { 
     open("http://www.google.com"); 
     assertCurrentUrlContains("google"); 

     type("Hello World", queryInput); 
     click(searchButton); 

     waitFor(3, SECONDS); 
     assertTextContains("Hello World", searchResult); 
    } 
} 

ためにグーグルの例のテストは、ちょうどあなたのMavenのpom.xmlの依存関係の中でWebDriver Extensionsフレームワークを追加することを確認しています

<dependency> 
    <groupId>com.github.webdriverextensions</groupId> 
    <artifactId>webdriverextensions</artifactId> 
    <version>1.2.1</version> 
</dependency> 

ドライバはp rovided mavenプラグイン。単にpom.xmlに

<plugin> 
    <groupId>com.github.webdriverextensions</groupId> 
    <artifactId>webdriverextensions-maven-plugin</artifactId> 
    <version>1.0.1</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>install-drivers</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <drivers> 
      <driver> 
       <name>internetexplorerdriver</name> 
       <version>2.44</version> 
      </driver> 
      <driver> 
       <name>chromedriver</name> 
       <version>2.12</version> 
      </driver> 
     </drivers> 
    </configuration> 
</plugin> 

を追加してください。または、手動でダウンロードする場合は、

@DriverPaths(chrome="path/to/chromedriver", internetExplorer ="path/to/internetexplorerdriver") 

の注釈をドライバに指定するだけで、テストクラスに注釈を付けることができます。

上記の例では、WebDriver Extensions Bot classの静的メソッドを使用してテストをより読みやすくしています。しかしあなたはそれらを使うことに縛られていません。上記のテストは純粋なSelenium WebDriverのように書き直されました。

@Test 
    public void searchGoogleForHelloWorldTest() throws InterruptedException { 
     WebDriver driver = WebDriverExtensionsContext.getDriver(); 

     driver.get("http://www.google.com"); 
     assert driver.getCurrentUrl().contains("google"); 

     queryInput.sendKeys("Hello World"); 
     searchButton.click(); 

     SECONDS.sleep(3); 
     assert searchResult.getText().contains("Hello World"); 
    } 
関連する問題