带Headless Chrome的量角器不适用于AWS CodeBuild,但可以在本地工作

时间:2018-12-04 23:49:50

标签: protractor e2e-testing google-chrome-headless aws-codebuild

我有一个网页,该网页需要进入Google身份验证,然后才能进入有角度的网页,而且我已经建立了一些非常基本的端到端测试,这些测试在Linux中与Chrome Headless一样具有吸引力:

  1. 查找用户名字段
  2. 输入正确的电子邮件地址,然后单击下一步
  3. 输入密码登录
  4. 通过Google身份验证后,它会验证页面标题为“费用”

这是我在终端中收到的最后一条消息:在46秒内执行了3个规格中的3个成功。

但是,在 AWS CodeBuild 中,我们还使用Linux(Ubuntu)容器,并且每次每次都会失败。
这是第一个错误: ... 茉莉花开始了

  1. 查找用户名字段
  2. 输入正确的测试电子邮件     地址
识别出

0个h1标签  Expense App E2E初始测试套件  费用的索引页应该可以正常工作

  • [31m✗应该与测试用户正确登录·[39m
  • [31m-·[39m·[31mFailed:找不到使用定位符的元素:通过(css选择器,* [id =“ identifierId”]])
  • [elementArrayFinder.getWebElements.then(/codebuild/output/src609592849/src/node_modules/protractor/built/element.js:814:27)处39m

这是protractor.conf.js中的设置信息:

capabilities: {
'browserName': 'chrome',
chromeOptions: {
    args: ["--headless", "--disable-dev-shm-usage", "--no-sandbox", "--disable-gpu", "--window-size=1280x960"]
    }
},
directConnect: true,  // Test scripts communicate directly with Chrome Driver, so they start up and run faster

从package.json中,我正在使用:     “ e2e”:“ ng e2e --port 4200”,

在buildspec-test.yml中,我有以下post_build命令:     -npm运行e2e

为什么Chrome Headless在http://localhost:4200上找不到我的网页,而在本地Linux问题上却没有问题,但是当他们都运行Ubuntu Linux时却无法在AWS CodeBuild中找到它? 本地版本:Ubuntu 18.04.1 LTS AWS CodeBuild版本:Ubuntu Ubuntu 14.04.5 LTS(Trusty)

请让我知道,并预先感谢!

此致

PW

1 个答案:

答案 0 :(得分:1)

是的,我确实有这个答案。一位朋友和同事(感谢Bill T.)能够使用Ubuntu 18.04LTS创建Docker容器,并让我在工作的AWS CodeBuild中运行它。这证明了问题: 您不能在较旧 Ubuntu 14.04.5 LTS上使用 headless chrome。从Ubuntu 18.04 LTS之前的版本开始。