2016-03-29 4 views
2

私はSelenium WebDriveでWebページをテストしていますが、JavaScriptファイルにアサーションを付ける方法はわかりません。私はservers(配列)は2Selenium WebDriverを使用してJavaScript変数にアサーションを作成する

マイJavaScriptがconfig.jsファイルの長さであることを主張したい

は、私が主張したい次の配列が存在している含まれています

var location = location || {}; 
location.Config = { 
    servers: [ 
     {name: "a"}, 
     {name: "b"} 
    ] 
} 

私の最初の試みはしましたclassNameを使用してください:

Assert.assertThat(webDriver 
     .findElement(className("config.js")) 
     .getAttribute("servers") 
     .length(), 
    Matchers.is(2)); 
+0

ファイル "config.js"はページのリソースですか? –

+0

"config.js"ファイルはテスト対象のサイト内にあり、webdriverはサイトへのハンドルを持っています。私はあなたの質問を誤解していないことを願っています。 – Matthew

+0

"location.Config.servers [0] .name"をブラウザのコンソールとして実行するとどうなりますか? –

答えて

1

成功!

ブラウザに結果を実行してキャプチャするJavaScriptコマンドを渡すと、そのトリックが完了しました。

long servers = (long) ((JavascriptExecutor) webDriver).executeScript("return location.Config.servers.length"); 

Assert.assertThat(servers, Matchers.greaterThan((long) 0)); 
関連する問題