SlideShare une entreprise Scribd logo
1  sur  44
XPath yourself
Tip’s & Trick’s
About me
Role: QA Automation
Engineer,
Scrum Master
Company: Ciklum, Betsson
Group
skype: pashko.ivan
email:
pashko.ivan@gmail.com
XPath
● .. это язык запросов к элементам XML-документа
● .. призван реализовать навигацию по DOM в XML
● .. является стандартом консорциума W3C
● .. популярный “локатор” автоматизации UI
(c) Wiki
XPath. Синтаксис
XPath делится на “шаги”, которые разделяются символом /. Каждый “шаг”
состоит из трех частей:
axis::node[predicate] / axis::node[predicate] / axis::node[predicate]
axis (ось, обязательная часть)
node (узел, обязательная часть)
predicates (предикат, дополнительное условие, необязательная
часть)
XPath. Оси (axis)
Оси — это база языка XPath. Они
определяет множество елементов
относительно текущего.
axis::nodetest[predicate]
● parent:: | child::
● following:: | preceding:: (-sibling)
● ancestor:: | descendant:: (-or-self)
http://docstore.mik.ua/orelly/xml/jxslt/figs/jxt_0204.gif
XPath. Оси
//div[@class=’self’]/parent::div //div[@class=’self’]/preceding::div
//div[@class=’self’]/child::div //div[@class=’self’]/following::div
<div class=’parent’>
<div class='preceding'/>
<div class='self'>
<div class='child'/>
</div>
<div class='following'></div>
</div>
</div>
ancestors
descendant
/child::html/descendant-or-self::node()/child::body/*[position() = 1]
XPath. Оси. Полная форма
/html//body/*[1]
XPath. Оси. Сокращенная форма
XPath. Оси. Сокращения
// ~ /descendant-or-self::
@abc ~ attribute::abc
node ~ child::node
.. ~ parent::
. ~ self::
XPath. Оси. Относительный путь
//div[@class=’self’]/../../../div
<body>
<div value=’xpath me’>
<div>
<div class='self'/>
</div>
</div>
</body>
XPath. Оси. Относительный путь
//div[@class=’self’]/ancestor::body/div
<body>
<div value=’xpath me’>
<div>
<div class='self'/>
</div>
</div>
</body>
XPath. Оси. Относительный путь
//div[@class=’self’]/ancestor::div[2]
<div>
<div value=’xpath me’>
<div>
<div class='self'/>
</div>
</div>
</div>
.//div
<ul>
<li>
<div>FIRST</div>
</li>
</ul>
XPath. Оси. Абсолютный путь
.//div
<ul>
<li>
<div>FIRST</div>
<div>SECOND</div>
</li>
</ul>
XPath. Оси. Абсолютный путь
.//div → .//div[1]
<ul>
<li>
<div>FIRST</div>
<div>SECOND</div>
</li>
</ul>
XPath. Оси. Абсолютный путь
.//div
<ul>
<li>
<div>FIRST</div>
</li>
<li>
<div>SECOND</div>
</li>
</ul>
XPath. Оси. Абсолютный путь
.//div[1]
<ul>
<li>
<div>FIRST</div>
</li>
<li>
<div>SECOND</div>
</li>
</ul>
XPath. Оси. Абсолютный путь
.//div[1] == ./descendant-or-self::node()/div[position()=1]
./ где угодоно, среди потомков / первый div наследник
<ul>
<li>
<div>FIRST</div>
</li>
<li>
<div>SECOND</div>
</li>
</ul>
XPath. Оси. Абсолютный путь
.//div[1] → ./descendant::div[1]
./ первый div потомок
<ul>
<li>
<div>FIRST</div>
</li>
<li>
<div>SECOND</div>
</li>
</ul>
XPath. Оси. Абсолютный путь
.//div[1] → (.//div)[1]
(первый .//div из группы)
<ul>
<li>
<div>FIRST</div>
</li>
<li>
<div>SECOND</div>
</li>
</ul>
XPath. Оси. Абсолютный путь
XPath. Предикаты
P: X→ {true, false}
Неформально, предикат это выражение, которое возвращает значение
булевого типа (истина или ложь) в зависимости от входящих параметров.
Предикаты в Xpath используются для фильтрации.
В качестве параметров, могут быть использованы функции: position(),
name(), count(), contains(), . = и т.д.
XPath. Функции. position()
.//div[1]
.//div[position()=1]
<ul>
<li>
<div>FIRST NODE</div>
<div>SECOND NODE</div>
</li>
</ul>
XPath. Функции. text() .=
.//div[text()=’FIRST NODE’]
.//div[.=’FIRST NODE’] --inner html
<ul>
<li>
<div>FIRST NODE</div>
<div>SECOND NODE</div>
</li>
</ul>
XPath. Функции. contains()
.//div[ contains(text(), ’NODE’) ]
.//div[ contains(., ’NODE’) ]
<ul>
<li>
<div>FIRST NODE</div>
<div>SECOND NODE</div>
</li>
</ul>
XPath. Функции. contains()
.//div[ contains(@class, ’NODE’) ]
<ul>
<li>
<div class=’FIRST NODE’</div>
<div>SECOND NODE</div>
</li>
</ul>
XPath. Функции. not()
.//div[ not(@class) ]
<ul>
<li>
<div class=’FIRST NODE’</div>
<div>SECOND NODE</div>
</li>
</ul>
XPath. Функции. last()
.//div[ last() ]
<ul>
<li>
<div class=’FIRST NODE’</div>
<div>SECOND NODE</div>
<div>last node</div>
</li>
</ul>
XPath. Функции. last()
.//div[ last() - 1]
<ul>
<li>
<div class=’FIRST NODE’</div>
<div>SECOND NODE</div>
<div>last node</div>
</li>
</ul>
XPath. Фильтры. Мульти-фильтры.
При множественной фильтрации удобно использовать
последовательную форму:
div[..a..][..b..][..c..] == div[ (..a..) and (..b..) and (..c..) ]
!Но, не для функций : position(), last()
//div[1][@class] != //div[@class][1]
XPath. Порядок фильтрации
//div[1][@class]
<div>
<div > </div>
<div class='c11'></div>
<div class='c12'></div>
</div>
<div>
<div class='c21'></div>
<div class='c22'></div>
</div>
XPath. Порядок фильтрации
(//div[1])[@class]
<div>
<div > </div>
<div class='c11'></div>
<div class='c12'></div>
</div>
<div>
<div class='c21'></div>
<div class='c22'></div>
</div>
XPath. Порядок фильтрации
//div[@class][1]
<div>
<div> </div>
<div class='c11'></div>
<div class='c12'></div>
</div>
<div>
<div class='c21'></div>
<div class='c22'></div>
</div>
XPath. Порядок фильтрации
(//div[@class])[1]
<div>
<div> </div>
<div class='c11'></div>
<div class='c12'></div>
</div>
<div>
<div class='c21'></div>
<div class='c22'></div>
</div>
Комбинируем все вместе
XPath. Таблицы
Получить все Last Name из таблицы:
//tr/td[2]
<table>
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>NAME-1</td>
<td>LASTNAME-1</td>
</tr>
<tr>
<td>NAME-2</td>
<td>LASTNAME-2</td>
</tr>
</tbody>
</table>
XPath. Таблицы
Получить все Last Name из таблицы:
//tr/td[2]
<table>
<thead>
<tr>
<th>First Name</th>
<th>Middle Name</th>
<th>Last Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>NAME-1</td>
<td>M-NAME-1</td>
<td>LASTNAME-1</td>
</tr>
<tr>
<td>NAME-2</td>
<td>M-NAME-2</td>
<td>LASTNAME-2</td>
</tr>
</tbody>
</table>
XPath. Таблицы.
//tr/td[ index_of (//th(.=’Last Name’)) ]
К сожалению, index_of не существует, но :
index_of == count()
<table>
<thead>
<tr>
<th>First Name</th>
<th>Middle Name</th>
<th>Last Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>NAME-1</td>
<td>M-NAME-1</td>
<td>LASTNAME-1</td>
</tr>
<tr>
<td>NAME-2</td>
<td>M-NAME-2</td>
<td>LASTNAME-2</td>
</tr>
</tbody>
</table>
XPath. Таблицы.
a = //thead/tr/th[.='Last Name'] /
preceding-sibling::th
//tr/td[count(a) + 1]
но, +1 не учитывает сам елемент
<th>Last Name</th>
<table>
<thead>
<tr>
<th>First Name</th>
<th>Middle Name</th>
<th>Last Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>NAME-1</td>
<td>M-NAME-1</td>
<td>LASTNAME-1</td>
</tr>
<tr>
<td>NAME-2</td>
<td>M-NAME-2</td>
<td>LASTNAME-2</td>
</tr>
</tbody>
</table>
XPath. Таблицы.
a = //thead/tr/th[.='Last Name'] /
preceding-sibling::th
+
b = //thead/tr/th[.='Last Name']
count(a) + count(b)
<table>
<thead>
<tr>
<th>First Name</th>
<th>Middle Name</th>
<th>Last Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>NAME-1</td>
<td>M-NAME-1</td>
<td>LASTNAME-1</td>
</tr>
<tr>
<td>NAME-2</td>
<td>M-NAME-2</td>
<td>LASTNAME-2</td>
</tr>
</tbody>
</table>
XPath. Таблицы.
tr/th[
count( //thead/tr/th[.='Last Name']/
preceding-sibling::th )
+ count( //thead/tr/th[.='Last Name'] )
<table>
<thead>
<tr>
<th>First Name</th>
<th>Middle Name</th>
<th>Last Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>NAME-1</td>
<td>M-NAME-1</td>
<td>LASTNAME-1</td>
</tr>
<tr>
<td>NAME-2</td>
<td>M-NAME-2</td>
<td>LASTNAME-2</td>
</tr>
</tbody>
</table>
XPath. Таблицы.
tr/th[
count( //thead/tr/th[.='Last Name']/
preceding-sibling::th )
+ count( //thead/tr/th[.='Last Name'] )
<table>
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>NAME-1</td>
<td>LASTNAME-1</td>
</tr>
<tr>
<td>NAME-2</td>
<td>LASTNAME-2</td>
</tr>
</tbody>
</table>
Спасибо за внимание!
Q & A
◦ Xpath basics (W3C) -
http://www.w3schools.com/xpath
/default.asp
◦ Xpath basics(Microsoft) -
https://msdn.microsoft.com/en-
us/library/ms256115(v=vs.110).as
px
◦ Xpath functions -
http://www.w3schools.com/xpath
/xpath_functions.asp
◦ Examples -
http://www.xmlplease.com/axis
http://www.imagesbuddy.com/images/109/2013/12/bored-people-graphic.jpg
Thank you!

Contenu connexe

Tendances

Java весна 2013 лекция 8
Java весна 2013 лекция 8Java весна 2013 лекция 8
Java весна 2013 лекция 8Technopark
 
Android - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsAndroid - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsNoveo
 
12 - Java. Разработка сетевых приложений на Java
12 - Java. Разработка сетевых приложений на Java12 - Java. Разработка сетевых приложений на Java
12 - Java. Разработка сетевых приложений на JavaRoman Brovko
 
10 - Java. Многопоточность в Java: основы
10 - Java. Многопоточность в Java: основы10 - Java. Многопоточность в Java: основы
10 - Java. Многопоточность в Java: основыRoman Brovko
 
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.Igor Shkulipa
 
Александр Щепановский «Почему каждому языку нужен свой _»
Александр Щепановский «Почему каждому языку нужен свой _»Александр Щепановский «Почему каждому языку нужен свой _»
Александр Щепановский «Почему каждому языку нужен свой _»DevDay
 
Школа-студия разработки для iOS. Лекция 4. Работа с данными
Школа-студия разработки для iOS. Лекция 4. Работа с даннымиШкола-студия разработки для iOS. Лекция 4. Работа с данными
Школа-студия разработки для iOS. Лекция 4. Работа с даннымиГлеб Тарасов
 
Why Every Language Needs Its Underscore
Why Every Language Needs Its UnderscoreWhy Every Language Needs Its Underscore
Why Every Language Needs Its UnderscoreAlexander Schepanovski
 
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"Yandex
 
Android - 01 - Java Basics
Android - 01 - Java BasicsAndroid - 01 - Java Basics
Android - 01 - Java BasicsNoveo
 
Тестирование Web API
Тестирование Web APIТестирование Web API
Тестирование Web APIByndyusoft
 
Эффективное программирование на NodeJS
Эффективное программирование на NodeJSЭффективное программирование на NodeJS
Эффективное программирование на NodeJSYura Bogdanov
 
вебинар - функциональное тестирование с использованием Selenium 2 и TestNG
вебинар - функциональное тестирование с использованием Selenium 2 и TestNGвебинар - функциональное тестирование с использованием Selenium 2 и TestNG
вебинар - функциональное тестирование с использованием Selenium 2 и TestNGAndrey Rebrov
 
RDSDataSource: Promises
RDSDataSource: PromisesRDSDataSource: Promises
RDSDataSource: PromisesRAMBLER&Co
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй этоRoman Dvornov
 
Tdd webpack + testem + mocha + chai
Tdd webpack + testem + mocha + chaiTdd webpack + testem + mocha + chai
Tdd webpack + testem + mocha + chaiMichael Chernobrov
 
05 - Java. Collections Framework и Generics
05 - Java. Collections Framework и Generics05 - Java. Collections Framework и Generics
05 - Java. Collections Framework и GenericsRoman Brovko
 

Tendances (20)

Java весна 2013 лекция 8
Java весна 2013 лекция 8Java весна 2013 лекция 8
Java весна 2013 лекция 8
 
Android - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsAndroid - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, generics
 
12 - Java. Разработка сетевых приложений на Java
12 - Java. Разработка сетевых приложений на Java12 - Java. Разработка сетевых приложений на Java
12 - Java. Разработка сетевых приложений на Java
 
Selenium vs AJAX
Selenium vs AJAXSelenium vs AJAX
Selenium vs AJAX
 
10 - Java. Многопоточность в Java: основы
10 - Java. Многопоточность в Java: основы10 - Java. Многопоточность в Java: основы
10 - Java. Многопоточность в Java: основы
 
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.
 
Александр Щепановский «Почему каждому языку нужен свой _»
Александр Щепановский «Почему каждому языку нужен свой _»Александр Щепановский «Почему каждому языку нужен свой _»
Александр Щепановский «Почему каждому языку нужен свой _»
 
Школа-студия разработки для iOS. Лекция 4. Работа с данными
Школа-студия разработки для iOS. Лекция 4. Работа с даннымиШкола-студия разработки для iOS. Лекция 4. Работа с данными
Школа-студия разработки для iOS. Лекция 4. Работа с данными
 
Why Every Language Needs Its Underscore
Why Every Language Needs Its UnderscoreWhy Every Language Needs Its Underscore
Why Every Language Needs Its Underscore
 
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
 
Android - 01 - Java Basics
Android - 01 - Java BasicsAndroid - 01 - Java Basics
Android - 01 - Java Basics
 
Тестирование Web API
Тестирование Web APIТестирование Web API
Тестирование Web API
 
Эффективное программирование на NodeJS
Эффективное программирование на NodeJSЭффективное программирование на NodeJS
Эффективное программирование на NodeJS
 
PowerShell
PowerShellPowerShell
PowerShell
 
вебинар - функциональное тестирование с использованием Selenium 2 и TestNG
вебинар - функциональное тестирование с использованием Selenium 2 и TestNGвебинар - функциональное тестирование с использованием Selenium 2 и TestNG
вебинар - функциональное тестирование с использованием Selenium 2 и TestNG
 
RDSDataSource: Promises
RDSDataSource: PromisesRDSDataSource: Promises
RDSDataSource: Promises
 
Tdd php
Tdd phpTdd php
Tdd php
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй это
 
Tdd webpack + testem + mocha + chai
Tdd webpack + testem + mocha + chaiTdd webpack + testem + mocha + chai
Tdd webpack + testem + mocha + chai
 
05 - Java. Collections Framework и Generics
05 - Java. Collections Framework и Generics05 - Java. Collections Framework и Generics
05 - Java. Collections Framework и Generics
 

Similaire à QA Fest 2015. Иван Пашко. XPath yourself. Tips & Tricks

Типичный стек технологий для использования с Node.js
Типичный стек технологий для использования с Node.jsТипичный стек технологий для использования с Node.js
Типичный стек технологий для использования с Node.jsSerge Shirokov
 
Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)Dmitry Stropalov
 
Систематизация экспрешнов в IE
Систематизация экспрешнов в IEСистематизация экспрешнов в IE
Систематизация экспрешнов в IERoman Komarov
 
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)ScalaNsk
 
Msu.Center.Lectures.J07 Advanced Xml
Msu.Center.Lectures.J07 Advanced XmlMsu.Center.Lectures.J07 Advanced Xml
Msu.Center.Lectures.J07 Advanced Xmlolegol
 
Rich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkRich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkGeorgy Turevich
 
Webuibasics - Lesson 2 - HTML5 Layouts (in russian)
Webuibasics - Lesson 2 - HTML5 Layouts (in russian)Webuibasics - Lesson 2 - HTML5 Layouts (in russian)
Webuibasics - Lesson 2 - HTML5 Layouts (in russian)xasima
 
XML Native Database на примере SednaXML
XML Native Database на примере SednaXMLXML Native Database на примере SednaXML
XML Native Database на примере SednaXMLSlach
 
SPA инструменты
SPA инструментыSPA инструменты
SPA инструментыRoman Dvornov
 
Инсталляционные профили, создание сборок
Инсталляционные профили, создание сборокИнсталляционные профили, создание сборок
Инсталляционные профили, создание сборокAndrii Podanenko
 
C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.Igor Shkulipa
 

Similaire à QA Fest 2015. Иван Пашко. XPath yourself. Tips & Tricks (20)

Jsfwdays 2013-2
Jsfwdays 2013-2Jsfwdays 2013-2
Jsfwdays 2013-2
 
Типичный стек технологий для использования с Node.js
Типичный стек технологий для использования с Node.jsТипичный стек технологий для использования с Node.js
Типичный стек технологий для использования с Node.js
 
Укрощение XML
Укрощение XMLУкрощение XML
Укрощение XML
 
Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)
 
Систематизация экспрешнов в IE
Систематизация экспрешнов в IEСистематизация экспрешнов в IE
Систематизация экспрешнов в IE
 
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
 
Sumin
SuminSumin
Sumin
 
Js fuckworks
Js fuckworksJs fuckworks
Js fuckworks
 
Msu.Center.Lectures.J07 Advanced Xml
Msu.Center.Lectures.J07 Advanced XmlMsu.Center.Lectures.J07 Advanced Xml
Msu.Center.Lectures.J07 Advanced Xml
 
UWDC 2013, Yii2
UWDC 2013, Yii2UWDC 2013, Yii2
UWDC 2013, Yii2
 
Rich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkRich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend Framework
 
Шаблонизация
ШаблонизацияШаблонизация
Шаблонизация
 
Drupal Vs Other
Drupal Vs OtherDrupal Vs Other
Drupal Vs Other
 
Javascript 1
Javascript 1Javascript 1
Javascript 1
 
Webuibasics - Lesson 2 - HTML5 Layouts (in russian)
Webuibasics - Lesson 2 - HTML5 Layouts (in russian)Webuibasics - Lesson 2 - HTML5 Layouts (in russian)
Webuibasics - Lesson 2 - HTML5 Layouts (in russian)
 
XML Native Database на примере SednaXML
XML Native Database на примере SednaXMLXML Native Database на примере SednaXML
XML Native Database на примере SednaXML
 
SPA инструменты
SPA инструментыSPA инструменты
SPA инструменты
 
Инсталляционные профили, создание сборок
Инсталляционные профили, создание сборокИнсталляционные профили, создание сборок
Инсталляционные профили, создание сборок
 
C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.
 
Yserver
YserverYserver
Yserver
 

Plus de QAFest

QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQAFest
 
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQAFest
 
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QAFest
 
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QAFest
 
QA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать большеQA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать большеQAFest
 
QA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQAFest
 
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгораниемQA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгораниемQAFest
 
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...QAFest
 
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...QAFest
 
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium ClusterQA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium ClusterQAFest
 
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...QAFest
 
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...QAFest
 
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automationQA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automationQAFest
 
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...QAFest
 
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...QAFest
 
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях ITQA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях ITQAFest
 
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложенииQA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложенииQAFest
 
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...QAFest
 
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...QAFest
 
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22QAFest
 

Plus de QAFest (20)

QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
 
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
 
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
 
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
 
QA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать большеQA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать больше
 
QA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiled
 
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгораниемQA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
 
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
 
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
 
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium ClusterQA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
 
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
 
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
 
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automationQA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
 
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
 
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
 
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях ITQA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
 
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложенииQA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
 
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
 
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
 
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
 

QA Fest 2015. Иван Пашко. XPath yourself. Tips & Tricks