検証環境
- Firefox 56
- Windows7
- Chrome 61
症状
たとえば
<div>test test</div>
というHTMLがあった時、
document.querySelector('div').innerText
には
test ( )test
と格納されている。
これを
console.log(document.querySelector('div').innerText)
とすると、出力は
test (半角スペース)test
になっている。
なので、一度コンソールに出力した結果をコピペし、生のinnerTextとコンソールで比較してみると
document.querySelector('div').innerText === 'test test'
これはfalseになる。
コンソールの出力履歴に出たときに変換されるらしく、面白い現象が現れる。
一度trueになった式をコピペすると、falseになるのである。
なお、Chromeでは発生しなかった。
E2EテストでHeadlessChromeのテストコードとほぼ同じコードでFirefoxの開発者ツールで実行→コピペでexpectedコードを作成していたら、assertが通過しなかったことから発覚。
自動テストがChromeなら最初からChromeですればよかった…