質問

FireWatirと呼ばれるソフトウェアのこの素晴らしい平和を使用した後、私は私のテストにjQueryのセレクタ - 魔法を統合する方法があるかどうだろうか。

私の最初の試みは、このようなfirewatirの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が利用可能で、もう1つはその素晴らしさのすべてを使用することができました! ;)

ご挨拶 ジョー

他のヒント

あなたはあなたのようにそれを使用したい場合は、

通常$であなたは未亡人文書の文脈上でそれを実行する関数でラップする必要があります。

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

$ = function(selector) {

  win.content.jQuery(selector, doc);

}

する

FireWatirウィキでます:

  

FireWatirは、JSShサーバに送信し、ブラウザにロードされたページのDOMに対して実行されるJavaScript同等、にコードを変換します。

alert機能は、ブラウザではなく、ページのDOMのwindowオブジェクトに属します。だから、window.alert('hello dollly')のような警告を呼び出すことができます。

FireWatirはjs_evalと相互作用することができないので、DOMにごwindowを送信JSShセッションを作成します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top