Top 100+ вопросов по Selenium, которые чаще всего задают на собеседованиях, с ответами

Здесь собрано более 100 часто задаваемых вопросов, на собеседованиях для тестировщиков по Selenium,  с ответами на них. Надеемся, что все желающие получить работу в автоматизированном тестировании, смогут извлечь реальную пользу из нашей статьи.

1) Дайте определение понятия «автоматизированное тестирование»?

Автоматизированное тестирование это проверка программного обеспечения, посредством специализированных инструментов, которая включает проведение таких основных функций и шагов теста: запуск, инициализация, выполнение, анализ и выдача результата.

2) Какие основные преимущества автоматизированного тестирования?

  • Обеспечение максимального покрытия тестами при регрессионном тестировании
  • Быстрое выполнение
  • Повторяемость тест кейсов
  • Сокращение затрат на техническое обслуживание программного обеспечения
  • Экономия времени тестировщиков
  • Возможность исполнения в нерабочее время
  • Исключение «человеческого» фактора
  • Автоматически рассылаемые и сохраняемые отчеты о результатах тестирования

3) Что такое Selenium?

Selenium – инструмент, специально разработанный для проведения автоматизированного тестирования веб-приложений в различных браузерах и на различных платформах. Следует заметить, что не только веб-приложения, а любые рутинные действия, выполняемые в браузере, могут быть автоматически протестированы с помощью Selenium.

 4) Основные преимущества Selenium?

  • Selenium бесплатный и свободный в использовании инструмент. Вам не нужно платить за лицензию для его использования.
  • Кросс-браузерная совместимость (Firefox, Chrome, Internet Explorer, Safari )
  • Поддержка большого количества языков программирования (Java, C#, Ruby, Python, Pearl)
  • Совместимость со всеми основными платформами (Windows, Mac OS, Linux)
  • Огромное количество пользователей и, соответственно, массовая публичная поддержка
  • Возможность автоматизации скриптов
  • Поддержка распределения тестов
  • Регулярные и свежие усовершенствования библиотек

 5) Какие компонеты Selenium Вы знаете?

Selenium – набор инструментов для автоматизированного тестирования.  Он состоит из таких компонетов:

  • Selenium IDE (Integrated Development Environment) – специальный плагин Firefox для записи, сохранения и воспроизведения сценариев тестирования веб-страниц.
  • WebDriver - инструмент для автоматизации реального браузера, посредством вызова команды браузера, используя при этом родной API для каждого конкретного браузера. Поддерживает различные языки программирования - Java, .NET, PHP и т.п.
  • Grid позволяет производить синхронный и контролируемый запуск тестов на разных платформах и девайсах. Также является эффективным инструментом для масштабирования тестов.

6) Какие веб-драйвера API (программного интерфейса приложения) возможно использовать в Selenium?

Список драйверов, использующихся для автоматизации браузера.

  • AndroidDriver,
  • ChromeDriver,
  • EventFiringWebDriver,
  • FirefoxDriver,
  • HtmlUnitDriver,
  • InternetExplorerDriver,
  • iPhoneDriver,
  • iPhoneSimulatorDriver,
  • Remote WebDriver

 7) Есть ли недостатки у Selenium?

Так как Selenium предназначен только для тестирования веб-приложений, то существуют некоторые ограничения в его использовании:

  • Мобильные приложения не могут быть протестированы с помощью Selenium
  • Десктопные приложения не могут быть протестированы с помощью Selenium
  • Капча и считыватели бар-кода не могут быть протестированы с помощью Selenium
  • Для формирования отчётов пользователю нужно использовать внешние инструменты, такие как TestNG или jUnit.
  • Знания языка программирования необходимо для написания скриптов в Selenium

8) Что такое Selenium IDE?

Selenium IDE – специальный плагин Firefox для записи, сохранения и воспроизведения сценариев тестирования веб-страниц.

9) Что такое Selenese?

Selenese - язык написания скриптов в Selenium IDE

10) Какие типы тестирования поддерживаются в Selenium?

В Selenium поддерживаются функциональное и регрессионное тестирование.

11) Какие основные виды локаторов в Selenium?

Основными видами локаторов в  Selenium являются: ID, ClassName, Name, TagName, LinkText, PartialLinkText, Xpath, CSS Selector, DOM.

12) Какие инструменты автоматизированного тестирования могут использоваться для пострелизной валидации продукта непрерывной интеграции?

Инструменты автоматизированного тестирования, которые могут быть использованы для этой цели: CruiseCont, Hudson, Jenkins, Quick Build.

13) Объясните значение «assertion» в Selenium и назовите основные его основные типы?

«Assertion» используется как точка верификации. Оно подтверждает, что приложение соответствует ожиданиям.  Его основные типы: assert”, “verify” и “waifFor”.

14) Объясните разницу между командами «assert» и «verify»?

Обе осуществляют проверку того, является ли данное значение  истинным или ложным. В отличие от "assert", "verify" не остановит исполнение тест кейса в случаи ошибки.

15) Что такое Xpath?

Xpath – декларативный язык запросов к элементам XML или XTHML документа. Осуществляет навигацию по документу на основе его логической структуры и иерархии.

16) Что такое Absolute XPath?

Absolute XPath способ прямого нахождения элемента. У него имеется существенный недостаток. Если в пути элемента произойдут любые  изменения, то его нахождение станет невозможным. Пример Absolute XPath -html/body/div[3]/div/div[1]/div/div/div[1]/div/input.

17) Что такое Relative XPath?

Relative Xpath обозначает, что пользователь может начать путь  из середины HTML DOM структуры, и нет необходимости в написании длинного Xpath. Пример Relative Xpath - //input[@id='email'].

18) В чём разница между single slash (/) и double slash (//) в XPath?

Single slash (/) используется для создания пути элемента из самого корневого узла.

Double slash (//) используется для создания Relative XPath, что даёт возможность начать путь с любого места в документе.

19) Как, основываясь на разных локаторах, проверить веб-элементы?

Firebug, специальный плагин для Firefox, предоставляет различные средства разработки для отладки приложений. Firebug используется для проверки веб-элементов по таким атрибутам как: id, class, name и т.п.

20) Какие языки программирования поддерживает Selenium WebDriver?

Java, C#, Python и Ruby поддерживаются напрямую. Также существуют специальные имплементации для PHP и Perl WebDriver.

21) Как запустить браузер в Selenium WebDriver?

Нужно создать экземпляр драйвера конкретного браузера:

WebDriver driver = new FirefoxDriver();

22) Какие существуют драйвера для мобильного тестирования, поддерживаемые Selenium WebDriver?

Драйвера для мобильного тестирования, поддерживаемые Selenium WebDriver:  AndroidDriver, IphoneDriver, OperaMobileDriver.

23) Объясните принципиальное различие между XPath и CSS селектором.

С помощью CSS селектора мы можем перемещаться вниз документа, используя XPaths, мы перемещаемся вверх по документу.

24) Как можно определить располагается ли элемент на экране?

Существуют различные методы, с помощью которых, осуществляется проверка отображения элементов на экране: isDisplayed(), isEnabled(), isSelected(). Такого рода элементами могут быть кнопки, дроп боксы, чекбоксы, ярлыки, переключатели и т.п.

 25) Объясните разницу между командами "type" and "typeAndWait".

Команда "type"  используется для автоматизации набора на клавиатуре значений в текстовом поле веб-приложения. Также может быть использована для выбора значений из поля со списка.

 Команда "typeAndWait" используется когда ввод текста завершён, и страница приложения перезагружается.

26) Каким образом пользователь может получить доступ к тексту веб-элемента?

Пользователь может извлечь текст веб-элемента с помощью команды get. Для этого не требуется никаких специальных параметров, просто происходит возврат строкового значения. Например,

String Text = driver.findElement(By.id(“Some Text”)).getText()

 27) Как очистить текстовое поле?

Текст, написанный в текстовом поле, может быть удалён с помощью метода clear().

28) Как проверить чекбокс в Selenium?

Метод click() можно использовать как для проверки чекбокса, так и для проверки кнопок и переключателей.

29) Как убедиться в том, отмечен ли чекбокс/переключатель или нет?

Метод isSelected() используется для того, чтобы убедиться, отмечен ли чекбокс/переключатель или нет. Например -

driver.findElement(By.xpath("XPath of the checkbox/radio button")).isSelected();

30) Какой альтернативный способ кликнуть на кнопку «login»?

Метод submit() может быть использован в качестве альтернативы клику  на кнопку «login» , но только в том случае, если attribute type=submit.

31) Как выбрать значение из выпадающего списка?

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

selectByVisibleText:
Select selectByVisibleText = new Select (driver.findElement(By.id(“id_of_some_element”)));
selectByVisibleText.selectByVisibleText(“some_visible_text”);

32) Объясните разницу между командами «close» and «quit».

driver.close()  используется для закрытия текущей вкладки браузера.

driver.quit() используется для всех вкладок браузера.

33) Объясните разницу между методами setSpeed() и sleep().

Каждый из этих методов откладывает время исполнения шагов тест кейса. Основное различие между ними состоит в том, что  setSpeed() откладывает время исполнения перед каждой операцией Selenium, а thread.sleep() сделает такое только один раз.

Например:

  • thread.sleep(5000)- Время ожидания составит 5 секунд (5000 мс) . Такое произойдёт только один раз, согласно данной команде в том месте, где она прописана.
  • selenium.setSpeed("5000")- В этом случае время ожидания также составит 5 секунд (5000 мс). Но такое будет происходить с каждой командой, упомянутой в set Speed.

34) Какие Вы знаете команды навигации в Selenium?

  • navigate().back() возвращает пользователя на предыдущую страницу из истории браузера. Пример: driver.navigate().back();
  • navigate().forward() позволяет пользователю перейти на следующую страницу согласно истории браузера. Пример: driver.navigate().forward();
  • navigate().refresh() используется для обновления страницы браузера. Пример: driver.navigate().refresh();
  • navigate().to() даёт возможность пользователю открыть новое окно в браузере и переходить по заданному URL. Пример:
    driver.navigate().to(“https:// thinkmobiles.com/”);

35) Объясните разницу между командами «findElement()» и «findElements()»?

Обе позволяют пользователю найти элементы на текущей веб-странице, которые имеют соответствующие указанные значения локаторов.  

Если Вы используете findElement(), извлечён будет только первый элемент с соответствующим значением. Например:

WebElement element = driver.findElements(By.xpath(“//div[@id=’example’]//ul//li”))

Если Вы используете findElements(), извлечены будут все элементы с соответствующими значениями. Например:

List elementList = driver.findElements(By.xpath(“//div[@id=’example’]//ul//li”));

36) Можно ли с помощью Selenium управлять всплывающими окнами Windows?

Это невозможно, так как Selenium поддерживает тест кейсы только для веб-приложений.

37) Как можно управлять всплывающими окнами веб-приложений посредством Selenium?

Существуют такие методы эффективного управления всплывающими окнами (поп-апами) веб-приложений посредством Selenium :

  • string getText() возвращает текст, отображаемый в окне предупреждения
  • void accept() кликает на кнопку “Ok”, как только появляется всплывающее окно
  • void dismiss() кликает на кнопку “Cancel”, как только появляется всплывающее окно
  • void sendKeys(String stringToSend) вводит в окне предупреждения заданный шаблон строки.

38) Как обновить страницу браузера с помощью Selenium?Список команд Selenium для обновления страницы браузера:

  • navigate().refresh()
  • getCurrentUrl()
  • navigate().to(driver.getCurrentUrl())
  • sendKeys(Keys.F5)

39) Как можно увеличить окно браузера с помощью Selenium?

Команда driver.manage().window().maximize() используется для увеличения окнао браузера с помощью Selenium.

40) Как можно определить значение различных атрибутов элемента таких как: name, class, value?

Метод sing getAttribute("{attributeName}") используется для определения значений различных атрибутов элемента.

41) Можно ли удалить cookies с помощью Selenium?

Команда driver.manage().deleteAllCookies() используется для удаления cookies.

42) Как совершить правый клик с помощью Selenium WebDriver?

Для того чтобы совершить правый клик, используется класс Actions:

Actions act = new Actions(driver); // where driver is WebDriver type
act.moveToElement(webElement).perform();
act.contextClick().perform();

43)  Как совершить перетаскивание (drag and drop) с помощью Selenium WebDriver?

Для того чтобы совершить перетаскивание (drag and drop), используется следующий класс действий:

Actions builder = new Actions(driver);
Action dragAndDrop = builder.clickAndHold(SourceElement)
moveToElement(TargetElement)
release(TargetElement)
build();
dragAndDrop.perform();

44) Как проверить виден ли элемент на странице или нет?

Для этого может быть использован метод isDisplayed():

driver.findElement(By.id(“id_of_element”)).isDisplayed();

45) Как проверить доступность кнопки на странице?

Для этого может быть использован метод isEnabled():

driver.findElement(By.id(“id_of_element”)).isEnabled();

46) Какие действия мыши могут быть выполнены с помощью Selenium?

Selenium позволяет осуществлять такие действия мыши:

  • click(WebElement element)
  • contextClick(WebElement element)
  • doubleClick(WebElement element)
  • mouseUp(WebElement element)
  • mouseDown(WebElement element)
  • mouseMove(WebElement element)
  • mouseMove(WebElement element, long xOffset, long yOffset)

47) Напишите код для двойного клика мыши в Selenium?

Код для двойного клика мыши в  Selenium:

Actions action = new Actions(driver);
WebElement element=driver.findElement(By.id("elementId"));
action.doubleClick(element).perform();

48) Как с помощью Selenium навести указатель мыши на элемент?

Код для наведения указателя мыши на элемент в Selenium:

Actions action = new Actions(driver);
WebElement element=driver.findElement(By.id("elementId"));
action.moveToElement(element).perform();

49) Какие операции на клавиатуре могут быть выполнены с помощью Selenium?

Selenium позволяет осуществлять такие операции на клавиатуре:

  • .pressKey("non-text keys") используется для имитации работы нетекстовых функциональных клавиш.
  • releaseKey("non-text keys") используется для имитации работы сочетаний клавиш.
  • .sendKeys("sequence of characters") используется для передачи символьной последовательности во входной или текстовый элемент.  

50) Что такое JUnit? Что такое JUnit Annotation?

JUnit- находящаяся в свободном доступе, Java библиотека для модульного тестирования программного обеспечения, предоставленная Apache.  JUnit Annotations – процесс добавления специальных синтаксических форм метаданных в Java.  JUnit Annotations: переменные, параметры, пакеты, методы и классы.

51) Что такое TestNG и почему он лучше Junit?

TestNG - написанный на Java, фреймворк для тестирования, в основе которого заложены преимущества JUnit и NUnit, что делает его одинаково удобным как для разработчиков, так и для тестировщиков.  Вот несколько новых фукционалов, которые делают его продуктивнее и легче в использовании:

  • Многопоточное тестирование безопасности кода
  • Поддержка data-driven тестирования
  • Поддержка параметров
  • Поддержка разнообразных инструментов и плагинов (Eclipse, IDEA, Mave и т.п.)
  • Во время выполнения и протоколирования установка JDK по умолдчанию
  • Зависимые методы для серверного тестирования приложения
  • Гибкая конфигурация для тестирования

52) Какие виды аннотаций используются в TestNG ?

Слудующие виды аннотаций используются в TestNG: @Test, @BeforeSuite, @AfterSuite, @BeforeTest, @AfterTest, @BeforeClass, @AfterClass, @BeforeMethod, @AfterMethod.

53) Как установить приоритет тест кейса в TestNG?

TestNG "Priority" используется для составления тест кейсов. Для этого необходимо добавить аннотацию @Test(priority=??). Приоритетное значение будет равно «0» по умолчанию. Если не присвоить другого значения приоритету, исполняться будут все тест кейсы с приоритетом «0».

Приведённый ниже пример, показывает использование приоритета для исполнения тест кейсов.

Так как, приоритет для тест кейса "Registration" не определён, он будет исполняться в первую очередь, а потом уже остальные тест кейсы по приоритету.

import org.testng.annotations.Test;
public class testNGPriorityExample {
@Test
public void registerAccount()
{
System.out.println("Create an account");
}
@Test(priority=2)
public void sendEmail()
{
System.out.println("Confirm your email");
}
@Test(priority=1)
public void login ()
{
System.out.println("Execute login after confirmation");
}
}

import org.testng.annotations.Test;
public class testNGPriorityExample {
@Test
public void registerAccount() {
System.out.println("Create an account");
}
@Test(priority=2)
public void sendEmail() {
System.out.println("Confirm your account");
}
@Test(priority=1)
public void login() {
System.out.println("Execute login after confirmation");
}
}

54) Объясните как с помощью Selenium Web driver найти битые изображения на странице?

Для того чтобы найти битые изображения на странице следуйте таким шагам:

  • Через Xpath получите все ссылки на странице, используя имя тега
  • Кликните на каждую ссылку на странице
  • Ищите 404/500 в заглавии целевой страницы

55) Могут ли капча и считыватели бар-кода быть протестированы посредством Selenium?

Капча и считыватели бар-кода не могут быть протестированы посредством Selenium.

56) Как протестировать текст подсказок с помощью Selenium?

Текст подсказки в Selenium может быть проверен путем извлечения значения атрибута «title». Например:

String toolTipText = element.getAttribute("title");

57) Как разместить ссылки посредством Selenium?

linkText() и partialLinkText() используются для размещения ссылок посредством Selenium.

Например:

WebElement link1 = driver.findElement(By.linkText(“some_link_test”));
WebElement link2 = driver.findElement(By.partialLinkText(“some_link_part_text”));

58) Можно ли найти все ссылки на веб странице с помощью Selenium?

Поскольку все ссылки имеют анкорный тег «а», мы можем найти их, разместив список всех элементов с этим тегом:

List links = driver.findElements(By.tagName("a"));

59) Как можно сделать скриншот с помощью Selenium?

Метод getScreenshotAs  интерфейса TakesScreenshot используется для того, чтобы сделать скриншот с помощью Selenium:

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("C:\\screenshot1.jpg"));

60) Объясните как можно управлять цветом с помощью Selenium WebDriver?

Функция Use getCssValue(arg0) используется для управления цветом в Selenium WebDriver, путём отправления строки ‘color’ в качестве аргшумента.

61) Сколько ошибок Selenium WebDriver Вы знаете?

Существуют 5 различных ошибок Selenium WebDriver:

  • NoAlertPresentException
  • NoSuchElementException
  • NoSuchWindowException
  • TimeoutException
  • WebDriverException

62) Как использовать Selenium для загрузки файла?

Для загрузки файла используется элемент .sendKeys("path of file") на webElement, введением тега и файла типа <input type="file" name="fileUpload">.

63) Что такое Robot API?

Robot API используется для контроля взаимодействия клавиатуры или мыши с такими элементами Windows как всплывающие окна загрузки, оповещения, печати, или системными приложениями - Notepad, Skype, калькулятор и т.п.

64) Какие Вы знаете методы Robot Class?

Несколько популярных и часто используемых методов  Robot Class для автоматизации тестирования веб-приложений:

  • keyPress()для нажатия нижней стрелки на клавиатуре

Например:

keyPress(KeyEvent.VK_DOWN)

  • keyRelease() для опускания клавиши со стрелкой вниз

Например:

robot.keyRelease(KeyEvent.VK_DOWN)

  • mouseRelease() для правого клика мыши Например:
    mouseRelease(InputEvent.BUTTON3_DOWN_MASK)
  • mouseMove() перемещает указатель мыши по указанным X и Y координатам.

Например:

robot.mouseMove(point.getX(), point.getY())

  • mousePress() для нажатия на правую кнопку мыши.

Example :

robot.mousePress(InputEvent.BUTTON3_DOWN_MASK)

65) Как исполнять JavaScript в Selenium?

Для исполнения JavaScript в Selenium используется JavaScriptExecuter. Например:

WebDriver driver = new FireFoxDriver();
if (driver instanceof JavascriptExecutor) {
((JavascriptExecutor)driver).executeScript("{JavaScript Code}");
}

66) Какой пакет импортируется во время работы Selenium WebDriver?

org.openqa.selenium java -cp bin;jars/* org.testng.TestNG testng.xml

67) Как определить ширину текстового поля с помощью Selenium?

Для определения ширины текстового поля используется следующая команда:

driver.findElement(By.xpath(“xpath of textbox ”)).getSize().getWidth();
driver.findElement(By.xpath(“xpath of textbox ”)).getSize().getHeight()

68) Имплементация какого драйвера происходит быстрее всего?

Самый быстрый HtmlUnitDriver. В отличие от FireFoxDriver, ChromeDriver он не содержит графического интерфейса пользователя, во время его работы браузер не запускается.

69) Какое назначение метода deSelectAll()?

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

70) Как можно вернуться обратно из фрейма?

defaultContent() method используется для возврата из фрейма.

71) Как войти на любой сайт, если он показывает любой всплывающее окно для аутентификации пользователя и пароля?

Вы должны передать имя пользователя и пароль в URL-адрес:

https://username:[email protected]

https://creds:[email protected]

72) Какое назначение метода getOptions()?

getOptions() используется для получения выбранного параметра из выпадающего списка.

73) Объясните разницу между командами getWindowHandle() и getWindowHandles()?

Вы можете получить адрес браузера, используя эти команды.

 Если Вы используете getWindowHandle() Вы получите адрес текущей вклади браузера.

Соответственно, getWindowHandles(), даёт возможность получить адреса всех открытых вкладок браузера.

74) Объясните, как можно использовать сценарий восстановления посредством Selenium?

Сценарий восстановления используется в соответствии с языком программирования. В Java можно использовать обработку ошибок

75) Как управлять клавишами ENTER/TAB с помощью Selenium WebDriver?

Метод use click() или метод submit() используются для нажатия на клавишу  ENTER. Но, не стоит забывать, что submit() используется, только если type=’submit’.

Класс act.sendKeys(Keys.ENTER) используется для TAB.

76) Как управлять оповещениями с помощью Selenium WebDriver?

Вот несколько методов, которые широко используются для управления оповещениями с помощью Selenium WebDriver:

  • void dismiss()используется для клика на кнопку 'Cancel' оповещения.
    driver.switchTo().alert().dismiss();
  • void accept()используется для клика на кнопку 'ОК' оповещения.
    driver.switchTo().alert().accept();
  • string getText() используется для фиксирования предупреждающего сообщения.
    driver.switchTo().alert().getText();
                                             
  • void sendKeys(String stringToSend)используется для отправки сообщений в окно предупреждения.
    driver.switchTo().alert().sendKeys("Text");

77)  Что такое data driven фреймворк?

Data driven фреймворк основан на парадигме проектирования, где тестовая логика фиксирована, но зависит от тестовых данных.

Сами данные могут быть в разных репозиториях, таких как файлы  .csv , .json, .xls , или базы данных. Тесты можно добавлять, просто обновляя файлы или базы данных, вместо непосредственных изменений в программном коде. 

78) Что такое keyword driven фреймворк?

Keyword driven фреймворк - методология, где действия или шаги рассматриваются в качестве ключевых слов. Эти ключевые слова  “click”, “move”, “type” , как и данные, хранятся во внешних репозиториях - csv , .json, .xls , или базах данных

79) Что такое гибридный фреймворк?

Гибридный фреймворк – комбинация data driven и keyword driven фреймворков. Операции, инструкции, ключевые слова хранятся в одном репозитории, а базы данных в другом отдельном репозитории. Актуальные тест кейсы считываются с обоих репозиториев и исполняются автоматически. В этой методологии на практике используется лучшее из двух фреймворков.

80)  Какие основные преимущества Selenium Grid?

Selenium Grid имеет следующие преимущества:

  • Кросс-браузерное тестирование
  • Параллельное исполнение тест кейсов
  • Мульти платформенное тестирование

81) Что такое хаб в Selenium Grid?

Selenium Grid хаб – центральный сервер, который контролирует исполнение тест кейсов на разных машинах.

82) Что такое узел в Selenium Grid?

Узел в Selenium Grid – машина, подключенная к центральному серверу (хаб) , на которой запускаются тестовые скрипты. В отличие от хаба, в Selenium Grid может быть несколько узлов.

83) Объясните строку кода Webdriver driver = new FirefoxDriver();.

WebDriver “- это интерфейс, и мы создаем объект типа WebDriver, создающий экземпляр объекта класса FirefoxDriver.

84) Зачем создавать переменную ссылку “driver” типа WebDriver вместо создания прямой ссылки объекта FireFoxDriver или любого другого драйвера в операторе Webdriver driver = new FirefoxDriver();?

Создав переменную ссылку типа WebDriver, мы можем использовать одну и ту же переменную для работы с несколькими браузерами ChromeDriver, IEDriver  и т.п.

85) Как можно создать HTML  отчет о тестировании с вашего тестового сценария?

Существует три способа создания HTML  отчет о тестировании:

  • используя default.html для получения HTML отчёта в TestNG
  • с помощью ANT в JUnit
  • используя XSL jar для конвертации XML контента в HTML в своём кастомизированном отчёте

86) Что может быть причиной тестовых сбоев в Selenium WebDriver?

Существует несколько причин тестовых сбоев в Selenium WebDriver:

  • Элемент Selenium WebDriver, ожидающий доступа, не появился на веб-странице и время ожидания операции истекло
  • Selenium WebDriver пытается получить доступ к несуществующему объекту
  • Selenium WebDriver не удаётся найти объект, так как локатор был изменён

87) Объясните, как произвести отладку тестов в Selenium IDE?

Отладка тестов в Selenium IDE производится следующим образом:

  • Вставьте точку разрыва в то место, с которого будет происходить пошаговое исполнение тест кейса
  • Запустите тест кейс
  • Исполнение тест кейса будет приостановлено в точке разрыва
  • Кликните на голубую кнопку для того, чтобы продолжить с места, где тест кейс был приостановлен
  • Для одновременного продолжения исполнения всех команд кликните на “Run

88) Для чего используется файл testng.xml?

Файл testng.xml используется для конфигурации всего тест сьюита. В нём можно создать тестовые наборы, группы тестов, промаркировать тесты для параллельного исполнения, добавлять параметры в тестовые скрипты. Он может быть использован для будущего запуска.

89) Объясните разницу между @Factory и @DataProvider?

@DataProvider относится к индивидуальным тестовым методам и запускает отдельные методы много раз.

@Factory создаёт отдельные образцы тестовых классов и запускает все тестовые методы в этом классе с различными data. sets.

90) В каком формате отображаются скрипты в Selenium IDE?

Скрипты в Selenium IDE отображаются в формате XML.

91) Как управлять тестированием AJAX в Selenium WebDriver?

AJAX позволяет  веб странице получать небольшие объёмы данных с сервера без перезагрузки всей страницы.

Различные методы ожидания могут применяться для тестирования приложений Ajax: ThreadSleep, Implicit Wait, Explicit Wait, WebdriverWait, Fluent Wait.

92) FirefoxDriver – это класс, или интерфейс? Какой интерфейс он имплементирует?

FirefoxDriver - это Java класс.  Он имплементирует все методы доступные в интерфейсе  <WebDriver> .

93) Как, используя TestNG, сделать один тестовый метод зависимым от другого?

Мы можем сделать так, чтобы один тестовый метод исполнялся только после успешного завершения другого, используя параметр dependsOnMethods внутри @Test в TestNG: @Test(dependsOnMethods = { "preTests" })

94) Какое основное различие между Selenium WebDriver and Selenium RC?

Selenium WebDriver управляет браузером с помощью встроенной поддержки.

Selenium RC вставляет функции JavaScript в браузер вовремя загрузки страницы.

95) Что такое IntelliJ?

IntelliJ - это интегрированная среда разработки, которая помогает пользователям лучше и быстрее писать код для Selenium. Она может использоваться в качестве альтернативы  Java bean и Eclipse.

96) Какие преимущества использования Git Hub для Selenium?

  • Специалисты, работающие над одним и тем же проектом, могут обновлять его детали, одновременно информируя при этом, других членов команды.
  • Вы можете регулярно создавать проект из удаленного репозитория, используя Jenkins. Это поможет вам отслеживать неудачные сборки.

97) Можно ли использовать Selenium RC для управления тестами в двух различных браузерах одной операционной системы, без использования Selenium Grid?

Это возможно, если тестовый фреймворк Java не используется. Если используется Java клиент-драйвер Selenium, вместо тестового фреймворка Java, TestNG позволяет не использовать Selenium Grid.

98) Как запускать параллельное исполнение тест кейсов с помощью TestNG?

Для параллельного исполнения тест кейсов, следует всего лишь добавить эти ключи в тест сьюит:

parallel="{methods/tests/classes}"
thread-count="{number of threads you want to run simultaneously}".

99) Как вы проверите свой собственный локатор элементов?

“Find Button” из Selenium IDE используется для тестирования локаторов собственных элементов. Кликнув на эту кнопку, Вы увидите правильный или неправильный локатор Вашего элемента.

Также можно использовать FireFox плагин “ FirePath”.

100) Когда используется AutoIT?

AutoIT используется для управления окнами графического интерфейса пользователя, а также не-HTML всплывающими окнами приложения.

101) Какой API необходимо использовать для тестирования баз данных в Selenium WebDriver?

JDBC (Java Database Connectivity) API необходимо использовать для тестирования баз данных в Selenium WebDriver.

102) Какой Java API используется  для генерирования pdf отчётов?

Java API IText используется  для генерирования pdf отчётов.

103) Объясните, в чём преимущество Python по сравнению с Java для автоматического тестирования в Selenium.

Несколько причин того, почему Python по сравнению с Java, лучше для автоматического тестирования в Selenium:

  • Python проще и компактнее по сравнению с Java
  • Java использует традиционные фигурные скобки для начала и конца блоков, в то время как Pythonиспользует отступы
  • Java использует статическую типизацию, в то время как Python динамическую

104) Как управлять сетевыми задержками с помощью Selenium?

Вы можете использовать driver.manage().timeouts().pageLoadTimeout(); для управления сетевыми задержками с помощью Selenium.

105) Каким ещё способом можно запустить Selenium Server, кроме как через порт 4444 (по умолчанию)?

Selenium server можно также запустить через java-jar selenium-server.jar –port <port number>.

106) Объясните, как захватить сведения о сервере на стороне входа с помощью Selenium?

Для этого используется команда: javajar .jarlog selenium.log

107) Что такое фреймворк и какие фреймворки доступны в Selenium RC?

Framework  -коллекция библиотек и классов для помощи в проведении автоматического тестирования. NUnit, JUnit, TestNG, Bromine, RSpec, Unittest – одни из фреймворков, доступных в Selenium RC  .

108) Как вставить точку отсчёта в  Selenium IDE?

Это может быть сделано следующими способами:

  • Кликните правой кнопкой мыши на командуи выберите  “Set / Clear Start Point
  • Нажмите клавишу “Skey и выберите команду Selenium IDE

109) Какие два режима просмотра в Selenium IDE ?

Два режима просмотра Selenium IDE:  всплывающее окно и боковая панель.

110) Что такое репозиторий объектов?

Репозиторий объектов – неотъемлемая часть автоматизированного тестирования пользовательского интерфейса (UI), которая позволяет тестировщику сохранять объекты, которые будут использованы в скриптах, в одном или более централизованных местоположениях, а не разбросанными по всем тестовым сценариям.