0

是否可以在Firefox上運行我的Selenium測試,然後在Chrome和IE上執行相同的測試?我怎樣才能做到這一點?Selenium Firefox然後Chrome和IE

+0

指定硒版本,語言及其版本(如java,python)和瀏覽器版本的具體答案。 –

回答

0

使用Java,你可以自動處理所需的二進制文件(chromedrivergeckodriverIEDriverServer.exe)通過​​。

看一個完整的例子作爲參數化的JUnit測試用例。注意,測試代碼是單一的,而在測試參數(方法data()),你選擇要運行的代碼(瀏覽器,Firefox和Internet Explorer)瀏覽器:

@RunWith(Parameterized.class) 
public class MultipleBrowsersTest { 

    protected WebDriver driver; 

    @Parameter 
    public Class<? extends WebDriver> driverClass; 

    @Parameters(name = "{index}: {0}") 
    public static Collection<Object[]> data() { 
    return Arrays.asList(new Object[][] { { ChromeDriver.class }, { FirefoxDriver.class }, 
     { InternetExplorerDriver.class } }); 
    } 

    @Before 
    public void setupTest() throws Exception { 
    WebDriverManager.getInstance(driverClass).setup(); 
    driver = driverClass.newInstance(); 
    } 

    @After 
    public void teardown() { 
    if (driver != null) { 
     driver.quit(); 
    } 
    } 

    @Test 
    public void test() { 
    // Your test code here 
    } 

} 
0

WebDriver是一個界面,其中FirefoxDriver,ChromeDriver,InternetExplorerDriver在上實現。這些瀏覽器特定的驅動程序實現WebDriver界面中定義的所有方法。作爲用戶,您只使用WebDriver的方法(通過使用WebDriver對象調用它們),並且已被每個驅動程序如何實現這些方法所隱藏。所以,你不必擔心每個方法的實現。

但是你必須指定的唯一的事情如下:

對Firefox瀏覽器運行測試:

WebDriver driver = new ChromeDriver(); 

運行:

WebDriver driver = new FirefoxDriver(); 

對Firefox瀏覽器運行測試互聯網瀏覽器測試:

WebDriver driver = new InternetExplorerDriver(); 

同樣,對於幾乎所有的瀏覽器,我們都有相應的Driver類可用。

除了WebDriver語言庫之外,還需要爲每個瀏覽器下載.exe文件。

geckodriver.exe - firefox 48.0 and above (before 48 version, firefox has built-in support and no need of geckodriver.exe 
chromedriver.exe - all chrome versions 
InternetExplorerDriver.exe - all IE versions 

,一旦你下載他們,你讓硒知道在哪裏,這些可執行文件被保存在:

System.setProperty("browser_key", "/path/to/the/driver") 
example: 
System.setProperty("webdriver.firefox.marionette","G:\\Selenium\\Firefox driver\\geckodriver.exe"); // to set path to firefox driver, similary for chrome and IE browser. 
remember key changes based on the browser. 

或者,你可以保持在PATH環境變量中的.exe(在Windows中)或其他操作系統中的類似功能。

一旦獲得驅動程序實例,就可以使用WebDriver接口上可用的所有方法。(these are browser independent)

例如:

driver.get("http://www.google.com") // to lauch browser and visit google page 

WebElement searchField = driver.findElement(By.id("SearchInput")) // to find an element in a page. returns a WebElement object. 
searchField.sendKeys("search something") // to enter text into input field. 

參考文獻:

  1. https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebDriver.html
  2. https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/firefox/FirefoxDriver.html
0

我使用的是和的NodeJS我通過foreach做到了這一點。

const browsers = ['ie','firefox','chrome']; 
browsers.forEach(function(item, index){ 
    Tests(item,i); 
}); 
function Tests(item, index) { 
    describe("This is a test", function() {}); 

} 

然後我把項目在瀏覽器的名稱應該是在你的代碼

相關問題