使用UI在Docker中执行Selenium测试

时间:2017-05-15 08:39:48

标签: node.js selenium docker selenium-webdriver automation

我尝试在docker机器上运行selenium测试(Node Js),但它说“TypeError: module.exports.browser.isElementPresent is not a function”。

注意:

  • 我可以在我的本地机器上成功运行相同的硒测试
  • 我尝试在docker上运行相同的测试然后我遇到了上面的错误
root@6cd7ab2eb6f7:/usr/src# npm run kongaezv2
npm info it worked if it ends with ok
npm info using npm@4.1.2
npm info using node@v7.6.0
npm info lifecycle cerebro@0.0.1~prekongaezv2: cerebro@0.0.1
npm info lifecycle cerebro@0.0.1~kongaezv2: cerebro@0.0.1

> cerebro@0.0.1 kongaezv2 /usr/src
> mocha --recursive tests/kongaezv2 -t 9000000 --reporter mochawesome

execFile: tests/kongaezv2
execFilename: tests/kongaezv2.json


  Konga EZ V2 Sanity Test
validating pagetitle
title = Konga Ez | Home
Title = Konga Ez | Home
Validation == PASS :: Page :Konga Ez | Home is displayed successfully
    1) Log in with Email and Password
ready to close browser
validating pagetitle
title = Konga Ez | Home
Title = Konga Ez | Home
Validation == PASS :: Page :Konga Ez | Home is displayed successfully
    2) Serach for an item
ready to close browser
validating pagetitle
title = Konga Ez | Home
Title = Konga Ez | Home
Validation == PASS :: Page :Konga Ez | Home is displayed successfully
    3) Add an item to cart
ready to close browser
validating pagetitle
title = Konga Ez | Home
Title = Konga Ez | Home
Validation == PASS :: Page :Konga Ez | Home is displayed successfully
    4) Checkout with POD
ready to close browser


  0 passing (48s)
  4 failing

  1) Konga EZ V2 Sanity Test Log in with Email and Password:
     TypeError: module.exports.browser.isElementPresent is not a function
      at Object.elementpresent (helpers.js:25:47)
      at Object.validateelementpresent (validations.js:57:13)
      at Object.clickbutton (actions.js:74:13)
      at frameworks/kongaezv2.js:67:19
      at node_modules/async/dist/async.js:3830:24
      at replenish (node_modules/async/dist/async.js:946:17)
      at node_modules/async/dist/async.js:950:9
      at eachOfLimit (node_modules/async/dist/async.js:975:24)
      at node_modules/async/dist/async.js:980:16
      at _parallel (node_modules/async/dist/async.js:3829:5)
      at Object.series (node_modules/async/dist/async.js:4684:5)
      at Object.login_with_email (frameworks/kongaezv2.js:65:15)
      at Context.<anonymous> (tests/kongaezv2/kongaezv2.js:20:19)
      at runTest (node_modules/selenium-webdriver/testing/index.js:164:22)
      at node_modules/selenium-webdriver/testing/index.js:185:16
      at new ManagedPromise (node_modules/selenium-webdriver/lib/promise.js:1085
:7)
      at controlFlowExecute (node_modules/selenium-webdriver/testing/index.js:18
4:14)
      at TaskQueue.execute_ (node_modules/selenium-webdriver/lib/promise.js:3092
:14)
      at TaskQueue.executeNext_ (node_modules/selenium-webdriver/lib/promise.js:
3075:27)
      at asyncRun (node_modules/selenium-webdriver/lib/promise.js:2982:25)
      at node_modules/selenium-webdriver/lib/promise.js:676:7
      at process._tickCallback (internal/process/next_tick.js:103:7)
  From: Task: Konga EZ V2 Sanity Test Log in with Email and Password
      at Context.ret (node_modules/selenium-webdriver/testing/index.js:183:10)
      at node_modules/selenium-webdriver/testing/index.js:102:5
      at ManagedPromise.invokeCallback_ (node_modules/selenium-webdriver/lib/pro
mise.js:1384:14)
      at TaskQueue.execute_ (node_modules/selenium-webdriver/lib/promise.js:3092
:14)
      at TaskQueue.executeNext_ (node_modules/selenium-webdriver/lib/promise.js:
3075:27)
      at asyncRun (node_modules/selenium-webdriver/lib/promise.js:2935:27)
      at node_modules/selenium-webdriver/lib/promise.js:676:7
      at process._tickCallback (internal/process/next_tick.js:103:7)

  2) Konga EZ V2 Sanity Test Serach for an item:
     TypeError: module.exports.browser.isElementPresent is not a function
      at Object.elementpresent (helpers.js:25:47)
      at Object.validateelementpresent (validations.js:57:13)
      at Object.sendkeys (actions.js:116:13)
      at frameworks/kongaezv2.js:104:19
      at node_modules/async/dist/async.js:3830:24
      at replenish (node_modules/async/dist/async.js:946:17)
      at node_modules/async/dist/async.js:950:9
      at eachOfLimit (node_modules/async/dist/async.js:975:24)
      at node_modules/async/dist/async.js:980:16
      at _parallel (node_modules/async/dist/async.js:3829:5)
      at Object.series (node_modules/async/dist/async.js:4684:5)
      at Object.search (frameworks/kongaezv2.js:98:15)

2 个答案:

答案 0 :(得分:0)

谢谢@nick_gabpe安装xvfb为我工作。我使用了Chromium in Docker via Xvfb

答案 1 :(得分:0)

您应该在Xvfb

安装here更多信息