链接的click事件不适用于phantomjs

时间:2016-12-21 16:38:38

标签: phantomjs nightwatch.js

我正在使用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()
    },

感谢您的帮助。

1 个答案:

答案 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甚至找不到我要点击的元素。