2016-12-21 29 views
0

我正在使用nightwatchjs進行端到端測試。我的測試通過了Chrome,firefox,ie和edge,但其中一個測試失敗了幻影。點擊事件的網址似乎失敗。點擊事件鏈接不適用於phantomjs

'do somethings' : function(browser) { 
     browser 
      .setValue('input[id=SearchInput]', '000') 
      .click('button[id=Button]') 
      .assert.containsText('label[id=nOutput]', '000') 
      .click('a[id=link]')// this click is not working 
      .pause(1000) 
      .assert.value('input[id=Input]', 'A') 
      .assert.value('input[id=InputB]', 'B') 

      //reset page 
      .click('button[id=__xmlview0--clearButton]') 
      .end() 
    }, 

感謝您的幫助。

+0

你的意思是沒有測試運行在phantomjs中發生?你是怎麼知道url導航沒有發生的?因爲phantomjs似乎沒有 – Priya

+0

所有測試運行,除了我在代碼中提到的一個運行。看起來像'.click('a [id = link]')'不起作用 – user557657

+0

有趣。你可以發佈你可以在控制檯中看到的錯誤嗎? – Priya

回答

0

看起來像硒問題。

https://github.com/SeleniumHQ/selenium-google-code-issue-archive/issues/5404

硒首先獲取元素的位置,然後將鼠標點擊事件。如果該元素在該時間之間移動,則該元素將不會被點擊。

我也遇到過這個,我的測試用例試圖點擊A,但B被點擊。仍試圖找出解決方案。

在另一個項目中,我也遇到了另一個原因。該頁面已準備好響應,當瀏覽器寬度小於1000px時,某些元素爲display:none。當Nightwatch啓動Chrome或Firefox時,瀏覽器窗口將完全屏幕顯示,但phantomjs的默認視口大小會觸發響應狀況。所以Selenium甚至找不到我想要點擊的元素。