2013-04-18 2 views
8

Я новичок в тестировании селена. Я хочу запустить selenium test cases в нескольких браузерах против Internet Explorer, Firefox, opera и chrome. Какой подход я должен соблюдать. Можете ли вы, пожалуйста, предложить мне, который является лучшим процессом.Экспресс-тесты селен-webdriver против нескольких браузеров

Поддерживает ли веб-драйвер selenium несколько браузеров или нет?

У нас был сценарий входа в систему. Он работает успешно для Firefox, Chrome и Internet Explorer отдельно. Но я хочу запустить его для этих нескольких браузеров последовательно.

+0

Я автоматизировал свои тестовые примеры для нескольких браузеров с параметризованным подходом. Я использовал пример, упомянутый в [link] (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"); 
    }  
} 

Перед этим мы должны установить файлы драйверов chrome и internet explorer .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

просто дайте то, что вы хотите сделать, какой браузер вы используете, и я приведу пример. NB: если вы посмотрите на ссылки, которые я публикую, вы начнете работу для каждого драйвера браузера. не говорите, чтобы он снова спросил меня о каких-либо разъяснениях – Khalil

+0

, пожалуйста, посмотрите на мой отредактированный вопрос выше ... – user1441341

2

Вы можете использовать WebDriver Extensions Framework в 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); 
    } 
} 

просто убедитесь, чтобы добавить WebDriver Extensions рамки среди своих зависимостей pom.xml Maven

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

Драйверы можно скачать, используя p платный плагин maven. Просто добавьте

<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> 

к вашему pom.xml. Или, если вы предпочитаете загружать их вручную, просто комментируйте тестовый класс с помощью

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

аннотация, указывающая на драйверы.

Обратите внимание, что в приведенном выше примере используются статические методы из расширений WebDriver 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"); 
    } 
Смежные вопросы