我正在使用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 :(得分:0)
看起来像Selenium问题。
https://github.com/SeleniumHQ/selenium-google-code-issue-archive/issues/5404
Selenium首先获取元素的位置,然后发送鼠标点击事件。如果元素在时间之间移动,则不会单击该元素。
我也遇到过这种情况,我的测试用例是尝试点击A,但B点击了。仍试图找出解决方案。
在另一个项目中,我也遇到了另一个原因。页面响应准备就绪,当浏览器宽度小于1000px时,某些元素为display:none
。当nightwatch启动Chrome或Firefox时,浏览器窗口是全屏幕,但phantomjs的默认视口大小会触发响应条件。所以Selenium甚至找不到我要点击的元素。