Можно ли запустить мой тест Selenium на Firefox, а затем тот же тест на Chrome и IE? Как я могу это сделать?Selenium Firefox, а затем Chrome и IE
ответ
Использование 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
}
}
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.
Ссылки:
Я использую nodeJS и так, как я это делал через предсказание.
const browsers = ['ie','firefox','chrome'];
browsers.forEach(function(item, index){
Tests(item,i);
});
function Tests(item, index) {
describe("This is a test", function() {});
}
Затем я поместил элемент, где имя браузер должен быть в вашем коде
... то же тест на Chrome и IE
Chrome - есть с открытым исходным кодом Selenium IDE for Chrome доступен в магазине Chrome как Kantu Browser Automation plus Selenium IDE
Исходный код находится на Github под лицензия gpl.
укажите версию, язык и версию своего селена (например, java, python) и версии браузера для конкретных ответов. –