Selenium є одним з найпопулярніших інструментів для автоматизації тестування вебзастосунків. У поєднанні з Java цей інструмент дозволяє створювати потужні автоматизовані тести, що можуть зекономити час та зусилля при перевірці функціональності вебзастосунків. У цій статті ми зібрали 50 питань, які допоможуть підготуватися до співбесіди на позицію тестувальника з використанням Selenium та Java.
1. Що таке Selenium?
Selenium — це набір інструментів для автоматизації тестування вебзастосунків.
2. Які основні компоненти Selenium?
- Selenium WebDriver
- Selenium IDE
- Selenium Grid
3. Що таке WebDriver?
WebDriver — це API для автоматизації браузерів, який дозволяє взаємодіяти з вебсторінками як користувач.
4. Яка різниця між Selenium WebDriver і Selenium RC?
WebDriver не потребує запуску серверу, як у Selenium RC, і безпосередньо взаємодіє з браузером.
5. Як ви можете ініціалізувати WebDriver в Java?
WebDriver driver = new ChromeDriver();
6. Що таке Selenium Grid?
Selenium Grid дозволяє виконувати тести на декількох машинах та браузерах одночасно.
7. Як ви можете здійснити пошук елементів на вебсторінці в Selenium?
За допомогою методів findElement()
або findElements()
, використовуючи локатори, такі як ID, Name, XPath, CSS Selector.
8. Що таке XPath?
XPath — це мова запитів, яка використовується для навігації по XML-документам або HTML-структурам для пошуку елементів.
9. Як знайти елемент за XPath?
WebElement element = driver.findElement(By.xpath("//tagname[@attribute='value']"));
10. Що таке CSS Selector?
CSS Selector — це метод пошуку елементів за допомогою CSS-правил.
11. Як знайти елемент за CSS Selector?
WebElement element = driver.findElement(By.cssSelector(".class #id"));
12. Як виконати клік на елемент?
WebElement element = driver.findElement(By.id("submit"));
element.click();
13. Що таке WebElement в Selenium?
WebElement — це інтерфейс, що представляє елемент на вебсторінці, з яким можна взаємодіяти (клікати, вводити текст і т. д.).
14. Як ви можете ввести текст у текстове поле?
WebElement input = driver.findElement(By.id("username"));
input.sendKeys("your text");
15. Що таке wait в Selenium?
Wait — це механізм, що дозволяє Selenium дочекатися певної умови (наприклад, видимості елемента) перед виконанням дії.
16. Які види чекань є в Selenium?
- Implicit Wait: Задає час очікування для всіх елементів.
- Explicit Wait: Очікує певну умову для конкретного елемента.
- Fluent Wait: Задає умови для явного очікування з інтервалами перевірки.
17. Як реалізувати Implicit Wait в Selenium?
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
18. Як реалізувати Explicit Wait в Selenium?
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("submit")));
19. Що таке Page Object Model (POM)?
POM — це шаблон для організації тестів, де кожна вебсторінка представлена як окремий клас.
20. Як переключитися на інший фрейм?
driver.switchTo().frame("frameName");
21. Як переключитися на інший вікно?
Set<String> windows = driver.getWindowHandles();
driver.switchTo().window(windows.toArray()[1].toString());
22. Що таке TakeScreenshot в Selenium?
Це метод для збереження знімків екрану (скріншотів) під час виконання тестів.
23. Як зробити знімок екрану (скріншот) у Selenium?
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("screenshot.png"));
24. Що таке JavaScript Executor в Selenium?
JavaScript Executor дозволяє виконувати JavaScript-скрипти в контексті браузера.
25. Як виконати JavaScript код через WebDriver?
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("alert('Hello')");
26. Що таке драйвер в Selenium?
Драйвер — це інтерфейс, який дозволяє взаємодіяти з браузером та виконувати дії.
27. Як реалізувати Drag and Drop в Selenium?
Actions actions = new Actions(driver);
actions.dragAndDrop(sourceElement, targetElement).perform();
28. Як отримати текст з елемента?
String text = driver.findElement(By.id("message")).getText();
29. Що таке ChromeOptions?
ChromeOptions — це клас для налаштування параметрів браузера Chrome перед запуском.
30. Як виконати навігацію вперед та назад в Selenium?
driver.navigate().back();
driver.navigate().forward();
31. Що таке Selenium Grid?
Selenium Grid дозволяє запускати тести на різних машинах та браузерах одночасно.
32. Як зупинити браузер у Selenium?
driver.quit();
33. Як працювати з динамічними елементами?
Використовувати явне очікування для перевірки наявності або видимості елемента.
34. Що таке Assertion в тестуванні?
Assertion — це перевірка правильності результатів тесту.
35. Як додати залежності Selenium в Maven?
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.x.x</version>
</dependency>
36. Що таке TestNG?
TestNG — це фреймворк для тестування, який дозволяє організувати тести в групи та забезпечує додаткові можливості для запуску тестів.
37. Як використовувати TestNG з Selenium?
Додає тести в клас за допомогою анотацій TestNG, таких як @Test
.
38. Що таке JUnit?
JUnit — це фреймворк для написання тестів у Java.
39. Як запускаються тести за допомогою Maven?
mvn test
40. Що таке Maven?
Maven — це інструмент для управління залежностями та побудови проєктів.
41. Як перевірити наявність елемента на сторінці?
boolean isDisplayed = driver.findElement(By.id("element")).isDisplayed();
42. Що таке Selenium Grid?
Selenium Grid дозволяє запускати тестові скрипти на різних браузерах і пристроях паралельно.
43. Як реалізувати параметризацію тестів у TestNG?
@DataProvider(name = "data")
public Object[][] data() {
return new Object[][] { { "data1" }, { "data2" } };
}
@Test(dataProvider = "data")
public void test(String data) {
System.out.println(data);
}
44. Що таке Assertions у JUnit?
Assertions — це механізм перевірки правильності очікуваних результатів у тестах.
45. Як реалізувати автоматичну перевірку чекбоксів в Selenium?
WebElement checkbox = driver.findElement(By.id("checkbox"));
if (!checkbox.isSelected()) {
checkbox.click();
}
46. Як виконати знімок екрану (скріншот) в JUnit?
Використовуємо TakesScreenshot
після кожного тесту.
47. Що таке PageFactory в Selenium?
PageFactory — це шаблон для ініціалізації елементів на сторінці з використанням анотацій @FindBy
.
48. Як визначити, чи елемент активний на сторінці?
boolean isEnabled = driver.findElement(By.id("element")).isEnabled();
49. Що таке ExpectedConditions у Selenium?
ExpectedConditions — це клас для визначення умов, які Selenium має чекати перед виконанням дій.
50. Як ви можете перевірити URL поточної сторінки?
String currentUrl = driver.getCurrentUrl();
Ці питання і відповіді допоможуть вам підготуватися до співбесіди на позицію тестувальника з використанням Selenium і Java. Вони охоплюють ключові концепції та техніки, необхідні для ефективного автоматизованого тестування вебзастосунків.