Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ 10/3 Nightwatchjs + Reactjs todoMvc ] 心得分享 #26

Open
bbandydd opened this issue Oct 2, 2016 · 10 comments
Open

[ 10/3 Nightwatchjs + Reactjs todoMvc ] 心得分享 #26

bbandydd opened this issue Oct 2, 2016 · 10 comments

Comments

@bbandydd
Copy link
Contributor

bbandydd commented Oct 2, 2016

各位如果有問題,歡迎發問喔

@Wolke
Copy link
Contributor

Wolke commented Oct 4, 2016

nightwatch拿來當 廣告留言機 適合嗎?
還是有什麼其他推薦的自動化工具。

@bbandydd
Copy link
Contributor Author

bbandydd commented Oct 4, 2016

可以詳細描述廣告留言機要做甚麼嗎

@LarryLuTW
Copy link
Member

我有用過 phantomjs
可以拿來做一些網頁自動化
能做到跟瀏覽器一樣的功能

@bbandydd
Copy link
Contributor Author

bbandydd commented Oct 4, 2016

https://github.com/nightwatchjs/nightwatch/wiki/Running-tests-in-PhantomJS
看來可以把browser設定在phantom跑
Running tests in PhantomJS

@ElaineHuang
Copy link

感謝!講得非常詳細!想請問一下,建議把mocha和nightwatch一起用嗎?用了mocha後,nightwatch是不是就不支援--reporter了?想說beforeEach應該能更把程式碼簡化,謝謝!

@chnbohwr
Copy link

補上一些小技巧

  1. 不正確的 CSS Selector
    沒有使用正確的 CSS selector 就會找不到 element 發生錯誤,例如以下的範例,雖然 selector 可正常在瀏覽器執行,但是沒有辦法在 nightwatch 裡面執行。

    // not working, bad
    browser.waitForElementPresent('div[title=test]')
    

    change to

    browser.waitForElementPresent('div[title="test"]')
    

    正確的 selector 方法請參考 REC-css3-selectors-20110929

  2. firefox 無法打開
    目前測試 firefox 47.0 沒有辦法使用 selenium ,升級到 47.01 就可以了。
    補上 firefox 設定步驟

  3. 如何上傳檔案到遠端的 selenium server,可以呼叫uploadFileToSeleniumServer 這個功能,不過這只有我私人的 repository 有,所以必須要修改 package.json "nightwatch": "github:chnbohwr/nightwatch" 對應到我的專案上。

  4. 程式卡在點選某個 element 之後就不動了
    檢查看看是不是 element 上面有其他的東西擋住 .click('.button_1', function(e){console.log('e')})
    如果有以下訊息印出來就是有東西擋住 element 導致 selenium 無法點選到 unknown error: Element is not clickable at point (429, 410). Other element would receive the click

  5. waitForElementPresent & waitForElementVisible 有什麼不同
    Present 代表有在 HTML(包含畫面外以及未呈現),而 Visible 代表有在畫面上,而且有正確呈現出來

  6. 測到彈跳視窗的時候,會被chrome瀏覽器擋住
    在 nightwatch.conf.js 裡面編輯環境變數加入 chrome option 允許彈跳視窗,所有chrome option

    "desiredCapabilities" : {
      "browserName" : "chrome",
      "chromeOptions" : {
        "args" : ["disable-popup-blocking"]
      }
    }
    
  7. 想要點擊 iframe 裡面的 alert 要怎麼辦? getAttribute取得iframe src後導頁後再執行acceptAlert

  8. 每個測試項目的 test description 要不同,否則會出錯。

@chnbohwr
Copy link

@ElaineHuang 可以參考這篇來做設定使用 mocha

mocha 本身的 reporter 有很多,也可以輸出 xml 詳細的內容可以參考這邊

@ElaineHuang
Copy link

好的!謝謝!想再請教一下,node的automation test其實還有webdriver.io,nightmare.js,webDriverJs
請問為什麼會想用nightwatch呢?或是nightwatch有什麼優勢呢? 謝謝!

@chnbohwr
Copy link

chnbohwr commented Jan 5, 2017

其實我以前也有用過 webdriver.io 實際上寫起來也是差不多,建議挑一套自己順手的就好

@ElaineHuang
Copy link

好的!謝謝 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants