chrome(v66以降)でseleniumテストが動画の自動再生でハングする
条件
- chrome(v66以上)
- seleniumを利用した自動テストを行っている
- 自動再生のEventを引っ掛けようとしている
解決法
-
--autoplay-policy=no-user-gesture-required
を利用する。
具体的には
var webdriver = require('selenium-webdriver');
var chromeCapabilities = webdriver.Capabilities.chrome();
var chromeOptions = {
'args': ['--autoplay-policy=no-user-gesture-required']
};
chromeCapabilities.set('chromeOptions', chromeOptions);
var driver = new webdriver.Builder().withCapabilities(chromeCapabilities).build();
概要
-
--autoplay-policy=no-user-gesture-required
を利用する。
具体的には
var webdriver = require('selenium-webdriver');
var chromeCapabilities = webdriver.Capabilities.chrome();
var chromeOptions = {
'args': ['--autoplay-policy=no-user-gesture-required']
};
chromeCapabilities.set('chromeOptions', chromeOptions);
var driver = new webdriver.Builder().withCapabilities(chromeCapabilities).build();
概要
かねてから噂されていたらしい、Chromeの自動再生拒否のバージョンがついにやってきた。
(実装はちょっと前からされてたみたい、デフォルトにされたのが今回のアプデ)
seleniumでの設定方法でもつまずいたが、ブラウザ経由で自動再生のフラグを変更したいなら chrome://flags/#autoplay-policy
で操作する。
一応、以下の三種類が用意されている。
- No user gesture is required.
- User gesture is required for cross-origin iframes.
- Document user activation is required.
一ユーザーとしてはありがたい限りの機能だが、テストが落とされるのは困ったので共有したい。
ちなみに、IMEとやらでサイトごとに自動再生を許可するドメインを確定する仕組みがあるみたい。
ただ、自分のchrome://media-engagement
を見ても全部、拒否られてたのでよくわかんない。
自動再生拒否を回避してどうしても自動再生で動画を流したい人はGoogle公式行けばいいと思います。
回避できる手段について日本語でまとめたものがQiitaにあったのでペタリ
休日が開けたら、テストがtimeout
してて月曜日から憂鬱な気分に振り回される人が少なくなるように祈ります。
参考:
Author And Source
この問題について(chrome(v66以降)でseleniumテストが動画の自動再生でハングする), 我々は、より多くの情報をここで見つけました https://qiita.com/nukisashineko/items/decf54efc2c8b3c201e1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .