Вопрос

после использования этого превосходного программного обеспечения под названием FireWatir я задаюсь вопросом, есть ли способ интегрировать jQuery-selector-magic в мой тест.

Моя первая попытка - использовать firewatir's js_eval() метод, подобный этому

require 'rubygems'
require 'firewatir'
f = FireWatir::Firefox.new
f.js_eval("alert(42);")

Единственное, что я получаю, это

JsshSocket::Ошибка JSReferenceError:оповещение не определено

что довольно странно, потому что другие выражения, такие как

f.js_eval("document.location.toString();")

Работайте как заклинание!

У кого-нибудь есть подсказка?

Спасибо и приветствует,

Джо

Это было полезно?

Решение 2

Ладно, ребята,

я заставил jQuery работать с большим количеством исследований, и я надеюсь, что это поможет вам, если у вас возникнут подобные проблемы:

firefox.js_eval("var target = getWindows()[0]; target.content.jQuery('#selector').toggle()")

Что мне нужно было сделать, так это явно выбрать окно, в котором я работаю, и в его содержимом доступен jQuery, и можно использовать все его великолепие!;)

Приветствую Джо

Другие советы

Если вы хотите использовать его так же, как обычно, с $, вам нужно обернуть его в функцию, которая будет запускать его в контексте документа Windows.

var win = new getWindows()[0].content;
var doc = browser.contentDocument;

$ = function(selector) {

  win.content.jQuery(selector, doc);

}

веб-дизайн Чикаго

Из самого FireWatir Вики:

FireWatir преобразует код в эквивалент JavaScript, который затем передается на сервер JSSh и выполняется в соответствии с DOM страницы, загруженной в браузер.

Тот Самый alert функция принадлежит к window объект браузера, а не DOM страницы.Таким образом, вы можете вызвать оповещение типа window.alert('hello dollly').

FireWatir создает сеанс JSSh, который отправляет ваш js_eval к DOM, поэтому не может взаимодействовать с window.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top