Codeception $ is not defined

codeception
Теги: #<Tag:0x00007fedbc05a4e0>

(Дмитрий Сергеевич Шкарбатов) #1

Пытаюсь сделать селектор:

$input = $I->executeJs("$('.btn');");

Но падает ошибка в терминале: $ is not defined, хотя на самой странице, селектор выполняется.

Кто-то сталкивался с таким?


(vmaximv) #2

Что есть такое

?


(Дмитрий Сергеевич Шкарбатов) #3

Если открыть страницу в браузере и выполнить в консоли селектор.


(Дмитрий Сергеевич Шкарбатов) #4

То есть тестируемую страницу


(vmaximv) #5

https://developer.chrome.com/devtools/docs/commandline-api#selector
Это сахар от девтула. В реальном JS скоупе вашей странице нету $(), о чем и сообщается в тексте ошибки.


(Michael Bodnarchuk) #6

$ - зарезеривированый символ в РНР для перменных. Вставляя его в "", интерпретатор пытается вставить на его место переменную.

Замените кавычки на одиночные и будет вам счастье )


(Дмитрий Сергеевич Шкарбатов) #7

Попробовал так:

$I->executeJs('$(".btn");')

Но увы =(

$ is not defined

(Дмитрий Сергеевич Шкарбатов) #8

Сама страница в этот момент существует, у меня идет перед этим загрузка файлов. Или Вы о чем-то другом?


(Ray Romanov) #9

$input = $I->executeJs('return $(".btn");')


(Дмитрий Сергеевич Шкарбатов) #10

Та же ошибка =(


(Дмитрий Сергеевич Шкарбатов) #11

Переписал на чистом js - работает

$input = $I->executeJs('return document.querySelector(".btn");');

А jQuery что-то не видит =(


(Ray Romanov) #12
$input = $I->executeJs('return jQuery(function($) { $('.btn') });');

пробуй


(Дмитрий Сергеевич Шкарбатов) #13

jQuery is not defined


(Ray Romanov) #14

Значит jQuery на странице не используется frowning


(vmaximv) #15

О чем 40 минут назад я и сказал.


(Дмитрий Сергеевич Шкарбатов) #16

Странно конечно, но он там есть. Ладно буду искать в чем причина, Всем спасибо!


(vmaximv) #17

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


(Дмитрий Сергеевич Шкарбатов) #18

Спасибо, но я о том, почему не подгружается jQuery.