はい。ありがちなタイトルにしました。
これは単純にSelenium使ってる多くの人に見てほしいからです。
twitterで検索すると「何故か動かなくなった」とか「自己解決した」とか書いてあって、多くの人に情報が届いてないじゃないかなと。困ってる人もいるかなと思ってブログにしとくかぁ〜と思いましたん
先に結論
- headlessの設定の仕方が変わります(変わってます)
ChromeOptions options = new ChromeOptions(); options.addArguments("--headless=new") ; ChromeDrivier(options);
とかしないといけないです- https://www.selenium.dev/blog/2023/headless-is-going-away/
- headless絡みでバグが出たりしています(ダウンロードディレクトリの指定が出来ないバグ)
setHeadlessメソッドは非推奨→削除
公式に書いてあるとおりではあるので、そちら参照してもらえれば良いんですが。
2023年2月現在、Seleniumは4.8.0です。
以下の書き方は非推奨とされ、4.10ではなくなるとのことです
ChromeOptions options = new ChromeOptions();
// これが使えなくなるっぽい
options.setHeadless(true);
Optionでのheadless指定が推奨となる
今後はChromeOptionsなどOptionにaddArgumentsする形を推奨しています。
- WebDriverバージョン96までは --headless
- WebDriverバージョン96から108までは --headless=chrome
- WebDriverバージョン109 --headless=new
となっています。
96まで
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
WebDriver driver = new ChromeDriver(options);
96から108まで
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless=chrome");
WebDriver driver = new ChromeDriver(options);
109から
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless=new");
WebDriver driver = new ChromeDriver(options);
headlessでダウンロードが不安定なバグ
実は、これ最近踏んだ結果、headlessの機能の変更を知ったという形です
https://github.com/SeleniumHQ/selenium/issues/11637
- ダウンロードディレクトリの指定が正しくなくなる
- Chromeのみ
- ubuntuだけらしい(ホントか?)
- 108だったら大丈夫だったけど109になったらだめになった
--headless=new
にしたが不安定だが動くようにはなったかも
という感じです。
これ、実行環境によっては「こちらの環境では動いてます(キリッ)」となりそうで
困ってる人と困ってない人が居そうです。
今後のChromeDriverの修正に期待!
まとめ
- 困ってる人に届いてほしい
- 公式のブログやドキュメントやissueを読むんだ
0 件のコメント:
コメントを投稿