2016-03-29 18 views
2

我使用Selenium WebDrive測試網頁,並且想要對JavaScript文件做出斷言,但不知道如何。使用Selenium WebDriver在JavaScript變量上聲明

我想要斷定servers(陣列)是長度爲2

我的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));