自动 Chrome 在 CodeceptJS WebdriverIO 测试中隐藏文本

Automated Chrome hides text in CodeceptJS WebdriverIO test

我全新安装了 Chrome 版本 67.0.3396.87 并按照 https://codecept.io/quickstart/ 初始化项目并创建以下测试:

Feature('Hidden Text');

Scenario('test something', (I) => {
    I.amOnPage('/');
    pause();
});

codecept.json 配置非常标准:

{
  "tests": "./*_test.js",
  "timeout": 10000,
  "output": "./output",
  "helpers": {
    "WebDriverIO": {
      "url": "https://codecept.io",
      "browser": "chrome"
    }
  },
  "include": {
    "I": "./steps_file.js"
  },
  "bootstrap": false,
  "mocha": {},
  "name": "chrome-missing-text"
}

当我运行测试时所有文本都被隐藏:

有趣的是,这种行为也适用于 chrome 设置本身(也是开发工具),但我可以 select 并复制 "hidden" 文本并成功粘贴:

我尝试通过 selenium-standalone start 运行 selenium-standalone,这个 运行s selenium-standalone 版本 3.8.1 和 ChromeDriver 2.37.544337 以及下载了最新的selenium-standalone version 3.12.0和ChromeDriver 2.4.0,通过java -Dwebdriver.chrome.driver=chromedriver -jar selenium-server-standalone-3.12.0.jar手动启动,它没有改变Chrome视觉隐藏所有文本的结果。

我在 Mac OS X 10.13.5.

我还能做些什么来排查和解决问题?

我不确定在哪里问这个问题,因为我不确定堆栈的哪一部分导致了问题。

似乎是 mac os 终端在 OS X 10.13.5 中的问题。从第 3 方终端(例如使用 IntelliJ 终端)启动 selenium 服务器(或特定测试),不会出现此问题。

看看这个:

https://github.com/karma-runner/karma-chrome-launcher/issues/183#issuecomment-401820926

您可能会找到一种方法来传递 --disable-gpu 标志。这帮助我解决了自己的问题: Chrome not rendering fonts when opened in terminal or run by webriver