在夜间守望/硒测试下{Firefox}鼠标点击不当行为

时间:2016-01-25 14:44:02

标签: javascript firefox selenium selenium-webdriver nightwatch.js

我正在使用夜视/硒测试网页。该网页是一系列组织到文件夹中的过程,类似于您在Windows资源管理器中看到的内容。可以通过单击文件夹来展开/折叠文件夹,并且可以单击这些过程来显示/隐藏对每个过程进行操作的按钮。

我的测试逻辑在文件夹上单击(browser.click())以展开它,然后单击基础过程以显示其按钮。单击会调用一些javascript来将成员资格切换为所选文件夹或过程的DOM类,该CSS将转换为可见或不可见的项目。 nightwatch自定义命令测试逻辑如下所示:

module.exports.command = function(folder,procedure)
{
    var folderCSS = '.folder .col-title[data-title="' + folder + '"]'
    var folderOpenCSS = '.folder.open .col-title[data-title="' + folder + '"]'

    // Ensure the desire folder is visible, click on it to expand,
    // and ensure that it has expanded
    this.waitForElementVisible(folderCSS,1000)
    this.click(folderCSS)
    this.waitForElementPresent(folderOpenCSS,3000)

    // Insert extra click on something else here to make the procedure click work, e.g.
    //var folder2CSS = '.folder .col-title[data-title="folder2"]'
    //this.click(folder2CSS)

    // Wait for the desired procedure title to be visible and click on it,
    // exposing the run button
    var procedureCSS = '.procedure[data-procedurename="' + 
                       folder + '/' + procedure + '"]'
    var procedureTitleCSS = procedureCSS + ' .col-title'
    this.waitForElementVisible(procedureTitleCSS,5000)
    this.click(procedureTitleCSS)

    // Wait for the run button to be visible and click on it to start
    // the procedure
    var procedureRunCSS = procedureCSS + ' .run-icon[data-original-title="run"]'
    this.waitForElementVisible(procedureRunCSS,1000)

}

这对于phantomjs无头浏览器和Chrome浏览器都可以在夜视/硒下正常工作,但使用Firefox无法正常工作。单击该文件夹(this.click(folderCSS))按预期工作,但单击该过程(this.click(procedureTitleCSS))不会切换按钮显示状态。无论等待多久,上面代码中的最终waitForElementVisible超时;但是,如果我在上面的代码中取消注释文件夹和过程单击之间的代码片段,那么额外的文件夹单击会让过程单击并切换过程按钮显示状态。我已尝试使用this.pause()代替额外点击,但它不起作用,因此似乎程序点击事件被阻止。

我测试点击结果的方式或发出点击的方式是否存在固有的错误,或者在夜班/硒下是否存在Firefox的某些已知问题? 我在Windows 8.1,Firefox 43.0.4,节点v4.2.2,selenium 2.48.2上运行。顺便说一下,这曾经适用于Firefox 43.0。

更新:尝试运行--verbose命令行选项来调试selenium交互并且点击工作正常,因此我无法使用它来帮助分析问题。

0 个答案:

没有答案