FireWatirとjQuery
-
20-09-2019 - |
質問
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セッションを作成します。
所属していません StackOverflow