3

FireWatirと呼ばれるこの優れたソフトウェアの平和を使用した後、jQuery-selector-magicを私のテストに統合する方法があるかどうか疑問に思います。

私の最初の試みは、このようなfirewatirのjs_eval()方法を使用することです

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

通常の$のように使用したい場合は、未亡人のドキュメントのコンテキストで実行する関数でラップする必要があります。

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に対して実行します。

この関数は、ページのDOMではなく、ブラウザalertのオブジェクトに属しています。windowしたがって、のようなアラートを呼び出すことができますwindow.alert('hello dollly')

FireWatirはJSShセッションを作成します。これjs_evalにより、DOMに送信されるため、と対話できなくなりwindowます。

于 2010-02-17T18:40:00.780 に答える