1

单个功能测试是否可以处理 2 个不同的页面?例如,当我执行以下测试时:

    return this.remote
           .get(testPage)
           .waitForElementByCssSelector('.alfresco-core-Page.allWidgetsProcessed', 5000)
           .elementByCss('#UNIT_TEST_MODEL_FIELD>DIV.control>TEXTAREA')
              .type(testData)
              .end()
           .elementByCss("#LOAD_TEST_BUTTON")
              .click()
              .sleep(2000)
              .waitForElementByCssSelector('.alfresco-core-Page.allWidgetsProcessed', 5000)
                 .elementByCss("#DD1") 
                 .click()
                 .end();

我收到以下错误:

Test main - firstTest - Test1 FAILED on chrome 31.0.1650.57 on LINUX:
Error: Cannot call method 'apply' of undefined
TypeError: Cannot call method 'apply' of undefined at null.<anonymous>     (/home/dave/ScratchPad/ShareInternTests/node_modules/intern/lib/util.js:108:10)
    at /home/dave/ScratchPad/ShareInternTests/node_modules/intern/lib/wd.js:769:29
    at signalListener     (/home/dave/ScratchPad/ShareInternTests/node_modules/intern/node_modules/dojo/Deferred.js:37    :21)
    at signalWaiting     (/home/dave/ScratchPad/ShareInternTests/node_modules/intern/node_modules/dojo/Deferred.js:28    :4)
    at resolve     (/home/dave/ScratchPad/ShareInternTests/node_modules/intern/node_modules/dojo/Deferred.js:19    2:5)
    at signalDeferred     (/home/dave/ScratchPad/ShareInternTests/node_modules/intern/node_modules/dojo/Deferred.js:81    :15)
    at signalListener     (/home/dave/ScratchPad/ShareInternTests/node_modules/intern/node_modules/dojo/Deferred.js:52    :6)
    at signalWaiting     (/home/dave/ScratchPad/ShareInternTests/node_modules/intern/node_modules/dojo/Deferred.js:28    :4)
    at resolve     (/home/dave/ScratchPad/ShareInternTests/node_modules/intern/node_modules/dojo/Deferred.js:19    2:5)
    at signalDeferred     (/home/dave/ScratchPad/ShareInternTests/node_modules/intern/node_modules/dojo/Deferred.js:81    :15)

由于我正在测试的框架,我需要加载一个“引导”测试页面,我将测试数据写入其中,然后 POST 以将测试模型持久保存到 HTTP 会话中,然后在结果页面中呈现。

然而,虽然测试的第一部分工作正常(我看到输入的测试数据并提交了下一页,但我似乎在第二次 .waitForElementByCssSelector 调用时遇到了错误。我尝试了各种排列但无法得到这个去工作。

如果我在第二页上完全运行第二次测试,那么这工作正常,但理想情况下,我希望在一个测试中全部捕获。

我想做的事情是可能的还是我必须将它分解成单独的测试?

4

1 回答 1

0

请尝试使用setImplicitWaitTimeout并使用elementBy*方法而不是使用waitForElementByCssSelector. 它更有效,并且应该可以正常工作。

第二种选择是确保您end在第二次通话之前waitForElementByCssSelector致电;调用方法的方式似乎存在缺陷waitForElement,其中#LOAD_TEST_BUTTON元素被用作调用的上下文,但waitForElement不接受任何上下文。

于 2013-12-02T15:29:52.587 回答