2017-09-26 1 views
0

私はページをロードして、そのページの要素をクリックしています。現在私はそれをクリックするために睡眠を使用していますが、私はそれが十分に頑丈であるとは思わない(また、しばらくしてから消えます)。ページがロードされるのを待ちません

on(page1).buttonForNextPage.click 
    @myvariable = on(page2).target_link_element.wait_until_present().link.text 

wait_until_present()は何を達成していないしているようです。私が睡眠を加えなければ、コードはただ競争するだけです。スリープ(3)でしか動作しませんが、私はそれを避けたいと思います。

また、私は自分のページにpageobjects gemを使用しています。

+0

コードが競合すると、表示される不正な動作は何ですか? '@ myvariable'は間違った値に設定されていますか? –

+0

私はセレンの要素がコードを存在しないことがあります。 target_link_elementが見つかりません – qaispak

+0

Page-ObjectとWatirのどちらのバージョンを使用していますか? 'target_link_element'の定義と理想的には問題を再現するページを共有することもできますか? –

答えて

2

最新バージョンのWatir(現在はv6.8.4)にアップグレードする必要があります。 v6.5.0以来、あなたが見ている問題に対処したいくつかのバグ修正がありました。

+0

説明のためだけです。 Watirはデフォルトで次のページに行く前にページが読み込まれるのを待つべきですよね? – qaispak

+1

はいといいえ。フォームを送信したり、ナビゲーションを開始するボタン/リンクをクリックすると、基本となるドライバはページの読み込みが完了するのを待ちます。ボタン/リンクがJavaScriptをトリガしてブラウザをリフレッシュさせると、ドライバは待機する必要があることを知らない。しかし、Watir要素の呼び出しのほとんどは、アクション/検査を行う前に要素が表示されるのを待つことになります。一言で言えば、ほとんどの場合は待つが、いくつかのエッジケースがある。 –

+0

私は考えました。 - ありがとう – qaispak

関連する問題