2013-04-18 9 views
8

मैं सेलेनियम परीक्षण करने के लिए नया हूँ के खिलाफ। मैं इंटरनेट एक्सप्लोरर, फायरफॉक्स, ओपेरा और क्रोम के खिलाफ एक से अधिक ब्राउज़र पर selenium test cases चलाना चाहते हैं। मुझे किस दृष्टिकोण का पालन करना है। क्या आप लोग मुझे सुझाव दे सकते हैं कि सबसे अच्छी प्रक्रिया कौन सा है।परीक्षण मामलों webdriver चल सेलेनियम से अधिक ब्राउज़र

सेलेनियम वेब चालक से अधिक ब्राउज़र का समर्थन करता है या नहीं करता है ???

हम लॉगिन स्क्रिप्ट लिखी थी। यह व्यक्तिगत रूप से फ़ायरफ़ॉक्स, क्रोम और इंटरनेट एक्सप्लोरर के लिए सफल चलाता है। लेकिन मैं अनुक्रमिक रूप से उन एकाधिक ब्राउज़रों के लिए इसे चलाने के लिए चाहता हूँ।

+0

मैं parametrized दृष्टिकोण के साथ एक से अधिक ब्राउज़र के लिए अपने परीक्षण मामलों automatized कैसा दिखेगा। मैंने [लिंक] पर उल्लिखित उदाहरण का उपयोग किया (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

आपके उत्तर @ खलील के लिए धन्यवाद ..क्या आप इसके लिए कोई नमूना उदाहरण प्रदान कर सकते हैं। – user1441341

+0

बस जो आप करना चाहते हैं, वह ब्राउज़र जो आप उपयोग करते हैं और मैं एक उदाहरण दूंगा। एनबी: यदि आप इसे पोस्ट करने वाले लिंक में एक नज़र डालते हैं तो आप प्रत्येक ब्राउज़र ड्राइवर के लिए शुरू कर देंगे। किसी भी स्पष्टीकरण के लिए मुझे फिर से पूछने का ध्यान न दें – Khalil

+0

कृपया मेरे संपादित प्रश्न को ऊपर देखें ... – user1441341

2

आप इस्तेमाल कर सकते हैं WebDriver Extensions ढांचे के JUnitRunner

यहाँ "नमस्ते विश्व"

@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); 
    } 
} 

लिए googling एक उदाहरण परीक्षण है सिर्फ अपने Maven pom.xml निर्भरता के बीच WebDriver Extensions ढांचा जोड़ना सुनिश्चित करें

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

ड्राइवरों को पी का उपयोग करके डाउनलोड किया जा सकता है rovided 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 से स्थिर तरीकों का उपयोग करता परीक्षण अधिक पठनीय बनाने के लिए। हालांकि आप उनका उपयोग करने के लिए बंधे नहीं हैं। ऊपर शुद्ध सेलेनियम 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"); 
    } 
संबंधित मुद्दे