2015-11-04 47 views
5

我剛剛瞭解了nighwatchjs並嘗試瞭解編寫我的測試的框架。 根據示例,我可以注意到使用變量瀏覽器的API - 爲此我找不到關於API參考或任何外部文檔的更多信息。什麼是nightwatchjs的瀏覽器變量

我想我明白頁面對象設計模式的概念,我在使用選擇等

但我想經歷來了解更多關於所使用的瀏覽器對象作爲它混淆了我什麼是真的怎麼回事:

考慮這個例子:

this.demoTestGoogle = function (browser) { 
    browser 
    .url('http://www.google.com') 
    .waitForElementVisible('body', 1000) 
    .setValue('input[type=text]', 'nightwatch') 
    .waitForElementVisible('button[name=btnG]', 1000) 
    .click('button[name=btnG]') 
    .pause(1000) 
    .assert.containsText('#main', 'The Night Watch') 
    .end(); 
}; 

我可以理解,它使用谷歌的網址,並會等待1000毫秒擁有的身標籤可見,進入nightwatch值,等待,點擊一個按鈕,停下來有som完成並做一些斷言。 但仍然瀏覽器變量對我來說是非常匿名的 - 我能做些什麼呢?

+0

任何機會獲得接受答案之一?會幫助其他人登陸這個網頁,畢竟這是一個問答論壇;) – GrayedFox

+1

其實沒有,因爲對我來說還是沒有很好的回答。 – Stefan

回答

3

我知道Commands documented at nightwatchjs.org描述了什麼browser對象可以做。

讓我知道這是否有幫助。我只是在學習我自己,但我會嘗試分享我對這些命令的瞭解。

1

瀏覽器對象是所有測試的重要基礎,因爲它實際上代表了瀏覽器(或會話)環境。我寫環境本身,因爲在這種情況下,瀏覽器與當前窗口相同,因爲您可以例如使用PhantomJS無頭執行測試,這是誤導性的。

你可以用瀏覽器對象做很多很酷的事情。在我的Nightwatch配置我設置globals_path下一個自定義globals.js文件,讓我來訪問,像這樣的全局變量:

browser.globals.someFunction(browser.globals.someVariable);

這也是你實際使用的所有夜巡API的命令。因此,要最大限度地發揮當前運行環境的窗口,你可以使用:

browser.maximizeWindow();

之前,比如說

,將瀏覽器指向的URL,你想測試:

browser.url(www.example.com);

瀏覽器對象在您發佈的示例中可能看起來有點奇怪的原因是因爲Nightwatch支持並允許其所有命令爲chained(鏈接到使用jQuery的命令鏈接示例 - 適用相同的原則)。

它看起來非常漂亮,當鏈接時,不是!!但是你不必鏈接你的測試。您可以在每個要發​​送到會話的命令前簡單地寫上browser.

瀏覽器,順便說一下,這裏不是一個保留字。你可以隨心所欲地調用它。我實際上使用'client'這個詞,因爲我認爲'browser'這個詞有誤導性,因爲我還在Chrome和Firefox上運行PhantomJS上的測試。

希望有幫助!

+0

在某種程度上,我會得到它有點謝謝。 – Stefan

+0

我相信你會得到它;)或許你可以選擇一個接受的答案,如果你認爲你的OP已經滿意? ;) – GrayedFox

相關問題