3

在使用了这款名为 FireWatir 的出色软件后,我想知道是否有办法将 jQuery-selector-magic 集成到我的测试中。

我的第一次尝试是js_eval()像这样使用firewatir的方法

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

我唯一得到的是一个

JsshSocket::JSReferenceError:未定义警报

这有点奇怪,因为其他表达方式如

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

像魅力一样工作!

有人有提示吗?

谢谢和问候,

4

3 回答 3

2

如果您想像通常使用 $ 一样使用它,则需要将其包装在一个函数中,该函数将在 widows 文档的上下文中运行它。

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

$ = function(selector) {

  win.content.jQuery(selector, doc);

}

芝加哥网页设计

于 2010-09-29T04:25:05.593 回答
1

好吧,伙计们,

我让 jQuery 进行了大量研究,如果您有类似的问题,我希望这会对您有所帮助:

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

我必须做的是明确选择我正在工作的窗口,并且在其内容中 jQuery 可用,并且可以使用它的所有功能!;)

问候乔

于 2010-02-18T09:47:14.350 回答
0

来自FireWatir Wiki

FireWatir 将代码转换为等效的 JavaScript,然后将其传输到 JSSh 服务器并针对浏览器中加载的页面的 DOM 执行。

alert函数属于window浏览器的对象,而不是页面的 DOM。因此,您可以调用警报,例如window.alert('hello dollly').

FireWatir 创建一个 JSSh 会话,将您发送js_eval到 DOM,因此无法与window.

于 2010-02-17T18:40:00.780 回答