Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Не выполняется jquery в тестах selenium java

jquery
selenide
selenium
Теги: #<Tag:0x00007f7b649737e0> #<Tag:0x00007f7b64973678> #<Tag:0x00007f7b64973538>

(Fruit Jazzy) #1

Добрый день!

Пытаюсь выполнить jquery скрипт с помощью JavascriptExecutor. В приложении используется jquery. (В браузере выполняются те скипты что хочу запустить). Также пробовал сделать инъекцию jq, не помогло. Просто js выполняется.


(Nik Sidorenko) #2

Приведите примеры кода где и как Вы пытаетесь выполнить jquery.
Что на выходе? Exception? Или просто ничего не происходит?


(Fruit Jazzy) #3

@NikS
> String script = “$(’[data-id=“50622”] .jsViewItem’).click();”;

JavascriptExecutor js = (JavascriptExecutor) WebDriverRunner.getWebDriver();
js.executeScript(script);

Ничего не происходит


(sidelnikovmike) #4

А если в консоли браузера выполнить этот код? Работает?


(Sergey Korol) #5

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

Когда же вы запускаете сценарий через WebDriver, ваш скрипт не будет ничего ждать. И если элемент не бы найден (не успел прогрузиться / обновиться и т.п.), ничего собственно и не произойдет.

Так что, во-первых, вам следует возвращать результат операции на элементе, что есть - список найденных объектов, либо пустой список.

А во-вторых, перед непосредственным запуском скрипта, нужно как минимум подождать появления объекта средствами WebDriver.


(Fruit Jazzy) #6

По второму до выполнения скрипта жду появления элемента.


(Fruit Jazzy) #7

Проблема оказалась пока не актуальной. В форме не используется скролл.