Польза JavaScript

В своих заметках я уже не раз упоминал о том, что верстка реальных веб-приложений далека от того что обычно демонстрируют в примерах на курсах и в книгах: ни тебе уникальных id, ни нормальных имен классов. Порой не знаешь к чему привязать локатор, чтобы все не упало при следующем запуске.

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

Но если такой возможности нет, или нельзя исправить локатор в этом месте, или слишком долго, то порой очень пригождается javaScript, который не всегда входит в набор наших знаний. По своему опыту скажу, что порой использование JS реально сокращало время теста и его простоту, так как вместо «костыля» и обходных маневров, происходило обращение к нужному элементу или атрибуту напрямую.

Приведу простой пример:

Имеется вот такая форма с расположенным на ней textarea, а мне понадобился текст, который в ней расположен. Но в данном случае текст не находится в верстке, нет атрибута value или text, откуда можно его выдернуть.

textarea

Через методы getText и getAttribute родного Selenium соответственно тоже не подступиться.

Вот тут и понадобился JS, используя встроенный JavaScript Executor, нам нужно написать запрос для получения значения textarea, в данном случае я использовал CSS локатор.

JavascriptExecutor js = (JavascriptExecutor) driver;
result = (String) js.executeScript(«return document.querySelector(‘.dialog__content textarea’).value»);

По нашему локатору ищется элемент, его значение возвращают нам приводя к Стринг, в итоге мы получаем искомый текст.

К чему я это все? Java — это конечно отлично, но и знать JavaScript хотя бы в рамках написания таких запросов, тоже будет не лишним. Кроме того поможет в общении с разработчиками на их языке.

 
Software-Testing.Ru

Реклама