2016-10-20 12 views
0

Seleniumで以下のユースケースをテストしようとしています: - ユーザーがテキストエリアに何かを入力すると、Ajaxリクエストが発生し、テキストがデータベースに追加されますdjangoとプロセスリクエストをview.pyで使用すると、リダイレクト後にページに入力されたテキストが表の行に表示されます。 - 私はセレンのLiveServerTestとsendKeys関数を使用して、テキストエリアにテキストを入力します。ただし、テスト中にJavascriptが起動されないようです。 テストを一時停止して手作業でテキストを入力すると、実際のサーバーをdjangoで実行したときと同じようにテキストが表示されません。 誰かがこれを引き起こす可能性のあることや、Seleniumを使用してJavascriptでページをテストする最良の方法を提案できますか?JavascriptのAjaxリクエストがSeleniumテストで実行されていない

+0

よくあるのは、使用しているセレンのバージョンです。 WebDriverを使用している場合、Seleniumはユーザーがjavascriptイベントをネイティブで呼び出すようにアクションを実行します。それが起こっていない場合、いくつか起こっている可能性があります:1)まだその能力を持っていないEdgeDriver/Geckodriverのバージョンを使用しています。 2)アプリが何らかの形で正しく設定されていない – sircapsalot

+0

ご意見ありがとうございます。私の主な問題は、Seleniumが外部のJavascriptファイルを実行しないということでした。私は自分のスクリプトをhtmlに直接貼り付けていました。また、ajaxリクエストを完了させるための待機時間を追加する必要がありました。いずれにしても、Seleniumを外部スクリプトで動作させる方法を理解する必要があります。ああ、私はgeckodriver 0.11.1でSelenium 3.0.1を使用しています。 – foobar

答えて

0

問題はSeleniumではなく、Djangoで問題でした。 LiveServerTestCaseの代わりにStaticLiveServerTestCaseを使用してテストする必要がありました。そうしないと、静的ファイルがロードされませんでした。

待機= WebDriverWait(self.browser、タイムアウト= 30)

wait.until(EC.presence_of_element_located((By.ID、 "element_id":私はこのような何かを追加する必要がありました連続Adjax要求をテストする ))))

+0

あなたはそれを見つけてうれしい! – sircapsalot

関連する問題