0

Можно ли запустить мой тест Selenium на Firefox, а затем тот же тест на Chrome и IE? Как я могу это сделать?Selenium Firefox, а затем Chrome и IE

+0

укажите версию, язык и версию своего селена (например, java, python) и версии браузера для конкретных ответов. –

ответ

0

Использование Java, вы можете обрабатывать автоматически требуемые двоичные файлы (chromedriver, geckodriver, и IEDriverServer.exe) с помощью WebDriverManager.

Посмотрите полный пример в качестве параметризованного тестового примера JUnit. Обратите внимание на то, что тестовый код един, и в параметрах испытаний (метод data()) вы выбрали браузеры вы хотите запустить свой код (Chrome, 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 FirefoxDriver(); 

запускать тесты на Firefox браузер:

WebDriver driver = new ChromeDriver(); 

для запуска тесты в интернет-браузере:

WebDriver driver = new InternetExplorerDriver(); 

Аналогично, для почти всех браузеров у нас есть соответствующие классы драйверов.

Наряду с языковыми библиотеками 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. 

или в качестве альтернативы, вы можете сохранить EXE-файл в переменных PATH среды (в 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 и так, как я это делал через предсказание.

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

} 

Затем я поместил элемент, где имя браузер должен быть в вашем коде