12

Backbone.js Web アプリケーションを Selenium IDE でテストしようとしています。

Selenium は、テスト ケースの最初の URL が新しいブラウザー ウィンドウ (たとえば) にある限り開くことができますが、open /#/login後続の URL を開こうとするたびにタイムアウトします。

Selenium は、URL ハッシュのみが変更されたときにトリガーされないイベントをリッスンしているようです。

これは、hashchange + Selenium を使用しているときにいつでも発生すると思います...

4

3 に答える 3

5

Selenium IDE では、単に「storeEval」コマンドを使用します。たとえば、次のようになります。

Command = storeEval
Target = window.location.hash='/search/events/birthdays/1' 

storeEvalは、「ターゲット」に割り当てられた JavaScript スニペットを実行します。次にできることは、open(url) コマンドを使用して開始ページを開く 1 つのテスト ケースと、storeEval コマンドを使用してハッシュを変更する残りのケースを用意することです。

于 2014-03-18T21:15:33.407 に答える
1

これを開発者ツールのコンソールで実行 -> window.location.hash='#abcde'. ブラウザタブでハッシュを変更する必要があります。

Selenium Webdriver と Java を介して JavaScript を実行します。

((JavascriptExecutor) driver).executeScript("window.location.hash='#abcde'");
于 2014-06-12T17:50:03.570 に答える
0

簡単な更新: Selenium IDE を使用して統合テストを作成することを断念し、代わりに Selenium WebDriverのSelenium Python バインディングを使用しました。

このアプローチでは、URL に移動してからWebDriverWait、DOM の特定の変更を検出するために使用できます。

driver = webdriver.Firefox()
driver.get("/#/login")
WebDriverWait(driver, 10).until(
    lambda driver: driver.find_element_by_css_selector("form.login").is_displayed())
于 2014-03-13T17:56:47.327 に答える