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

[Resolved] WebDriverException:.... / подключение jQuery

jquery
javascript
webdriver
Теги: #<Tag:0x00007f7b6986cce8> #<Tag:0x00007f7b6987bea0> #<Tag:0x00007f7b6987bba8>

(Рома) #1

Драстє) При выполнении

JavascriptExecutor js = (JavascriptExecutor) driver;
public void sfa() {
    js.executeScript("$('#pList').hover()");
    firstShowTitle.click();

}

получаю ошибку

org.openqa.selenium.WebDriverException: $(...) is null

На проекте не подключен jQuery. Вся проблема в этом? Мне нужно подключить jQuery.jar к своим тестам, в свой тестовый фреймворк? (если да, то как правильно (а то вроде как подключил но ничего не получилось)?)

Спасибо.


(Sergey Korol) #2

В консоли браузера скрипт выполняется $('#pList').hover()?
Ну и если ваше приложение не поддерживает jQuery, то о чем тогда речь? Тогда надо по-старинке через document.getElementBy. Ну или передавать уже готовый WebElement в качестве аргумента скрипту.


(rmerkushin) #3

Вам нужно подключить jQuery к тестируемой странице :smile:
Можно заинджектить например так:

var element1 = document.createElement("script");
element1.src = "//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js";
element1.type="text/javascript";
document.getElementsByTagName("head")[0].appendChild(element1);

(sidelnikovmike) #4

Jquery.jar? Что это?
Нужно разделять немного понятия. Jquery - это у вас на странице


(Рома) #5

Спасибо. Сорри за глупый вопрос. Можно закрывать


(sidelnikovmike) #6

Он не глупый. И он часто встречается. Зато в этом вопросе @rmerkushin рассказал нам, как подключить jquery через скрипт. Кажется очень полезно может быть, если и правда работает. Можно делать очень клевые штуки тогда через javascriptexecutor.

@rmerkushin - не сделаете пример в базу знаний? С инжектом через executor. Было бы круто!


(rmerkushin) #7

Вот, но я не очень джаву лю-лю, написал на питоне :smile: тыц


(sidelnikovmike) #8

Спасиб! Уже есть мысли где это использовать!


(asolntsev) #9

Привет!
А зачем вообще здесь запускать JavaScript? Навести мышку на элемент можно методом самого selenium:

new Actions(webdriver).moveToElement(webdriver.findElement(By.id("pList")).perform();

Или с помощью библиотеки Selenide ещё короче:

$("#pList").hover();