2016-05-24 12 views
0

私の要素が表示されるまでwait_untilメソッドを使用します。現在私は以下のようなSiteprismメソッドを使用しています。これはSiteprismメソッドに組み込まれていますが、断続的にエラーをスローしているようにうまく機能しないように見えます(DOMに存在しないオブジェクト)。古い要素の参照:DOMに要素が添付されていません - 要素/要素がSitePrismを使用して可視化/有効になるまで待つ必要があります

@home.wait_until_btn_element_visible 

私はcapybaraのfindメソッドを使用したいと思います。どちらがより簡単な解決法であるかを提供する。しかし、私はCSSを定義することに問題があります。私はRubyクラスでCSSを定義しています。その変数を以下のコードに使用したいと思います。どうやってやるの?

page.find('#blah').visible?.should be_true 

私はこのような何かしたい:

page.find(@home.btn_element).visible?.should be_true 

が、それはかなりの下に、このエラーを投げて動作していないように見える:

invalid selector: An invalid or illegal selector was specified 

は助けが必要.....またはその他のソリューションを

答えて

0

#findは、セレクタタイプと何らかのタイプのパラメータをとります。ページから要素を取りません。 site_prismからのelement :btn_element, ...宣言で指定されたパラメータにアクセスすることは(ソースを素早く見て)表示されないので、セレクタを再入力せずに#findを呼び出す方法はありません。それは実際に@home.wait_until_btn_element_visibleとsite_prismがvisible: trueと指定されたcapybarasを見つけることを終えるのであなたがしたいと言っていることの間に違いがないはずだと言われています。唯一の違いは、あなたがSitePrism :: Waiter.default_wait_timeを増やすか、私はその、このエラーが断続的に投げ、言ったようにwait_until_xxxコール

@home.wait_until_btn_element_visible(10) 
+0

に長い待機タイムアウトを指定しようとする場合がありますので、そのsite_prismは、独自の待機タイムアウトを使用します:古い要素参照:要素がDOMに添付されていません –

+0

レスキューで解決できますし、もう一度やり直してください。しかし、私はそれが好きではありません。 –

+0

@ASMはい - そのエラーは、タイムアウトが発生した後にのみ発生します(タイムアウトを増やしてみてください)。あるいは、@home要素が '#all'または'#first'を使って見つかった場合自動的に自動的に再読み込みすることはできません。 –

関連する問題