質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Microsoft Edge

Microsoft Edgeは、マイクロソフト社が開発する新しいWebブラウザです。Windows 10から標準搭載されており、Internet Explorerとは違うレンダリングエンジンが採用されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

1回答

3517閲覧

EdgeでSeleniumを実行することについて

tompooh

総合スコア6

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Microsoft Edge

Microsoft Edgeは、マイクロソフト社が開発する新しいWebブラウザです。Windows 10から標準搭載されており、Internet Explorerとは違うレンダリングエンジンが採用されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2023/01/12 01:28

前提

Jupyter Notebook
Python 3.7.6
msedge-selenium-tools 3.141.4
selenium 3.141.0
※selenium 4.1.0でも試しました

ここに質問の内容を詳しく書いてください。
https://laboratory.kazuuu.net/using-edge-and-selenium-to-automate-browsers-in-python/#toc3
①上記を参考にEdgeでSeleniumの実行したいのですが、添付の画面から先に進まず、JupyterNotobookでは「*」のままになってしまいます。先に進まない理由がわからないので教えていただきたいです。
イメージ説明

②EdgeでSelenium4を使いたいのですが、msedge-selenium-tools はSelenium3までにしか対応していないのでしょうか?Selenium4をEdgeで使いたいです。

実現したいこと

・まずは、selenium3.141.0 でbrowser.get('https://www.yahoo.co.jp/')でYahooを画面に表示したい。
・その後、Edgeでselenium4を使いたい

発生している問題・エラーメッセージ

上記を参考にEdgeでSeleniumの実行をしたいのですが、添付の画面から先に進まず「*」のままになっています。

selenium 3.141.0 でやれば、エラーメッセージはありませんが、
selenium 4.1.0でやると、以下のエラーメッセージが表示されます。

DeprecationWarning: executable_path has been deprecated, please pass in a Service object

該当のソースコード

from selenium import webdriver browser = webdriver.Edge(r"C:\Users\xxx(ユーザー名)\edgedriver_win64\msedgedriver.exe") browser.get('https://www.yahoo.co.jp/')

試したこと

https://qiita.com/tabizou/items/1a7789d88ba853cd6081

https://qiita.com/tabizou/items/1a7789d88ba853cd6081
※headlessではedgeを使ってseleniumを起動することができました。しかし、実現したいのはheadlessではない、通常モードです。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

msedge-selenium-tools は既にメンテンナンスされておらず非推奨となってます。msedge-selenium-tools をアンインストールして、Microsoft Edge (Chronium) をビルトインでサポートしている selenium 4 にアップグレードすることが推奨されています。

https://pypi.org/project/msedge-selenium-tools/

簡単に言うと、selenium4 なら msedge-selenium-tools なんて使わずに Edge の自動操作できるよってことです。

selenium 4.1.0でやると、以下のエラーメッセージが表示されます。

これはエラーメッセージではなく警告です。パスの指定方法がバージョン4.0以降では非推奨となっており、Service クラスを使って指定する方法が推奨されています。この警告は無視しても問題ありませんが、将来使えなくなる可能性があるためユーザーに対して事前にお知らせする目的でメッセージを表示しています。

selenium 4 では、以下のようにドライバーのパスを指定します。

python

1from selenium import webdriver 2from selenium.webdriver.edge.service import Service 3 4service = Service( 5 executable_path=r"C:\Users\xxx(ユーザー名)\edgedriver_win64\msedgedriver.exe", 6) 7browser = webdriver.Edge(service=service) 8browser.get("https://yahoo.co.jp/")

投稿2023/01/12 02:13

編集2023/01/12 07:31
Demerara

総合スコア392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tompooh

2023/01/12 03:23

ありがとうございました。 こちらの事情でChromeではなくEdgeでする必要があるのですが、Edgeで起動するコードを教えていただけますか。 msedge-selenium-toolsをアンインストールし、selenium==4.1.0にして、 from selenium import webdriver browser = webdriver.Edge(r"C:\Users\xxx(ユーザー名)\edgedriver_win64\msedgedriver.exe") browser.get('https://www.yahoo.co.jp/') を実行したのですが、症状は解決できず、yahooが表示されませんでした。
Demerara

2023/01/12 06:41 編集

ドライバーは公式サイトから、自身の Edge のバージョンに合った適切なものをダウンロードしてください。 <https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/> あなたが利用している Edge のバージョンはいくつですか?ドライバーのバージョンと一致していますか? 提示されている記事の情報は古い可能性があります。 コードは、私が回答に示した通り、Service クラスをインポートしてドライバーを指定してみてください。 追記:selenium の最新バージョンは、4.7.2 ですが、4.1.0 というバージョンへのアップデートは何か特別な意図がありますか?そうでなければ、最新バージョンにアップデートした上で再度試して頂けませんか?
Demerara

2023/01/12 07:24

提示した回答の webdriver が Edge ではなく Chrome になってました。修正します。
tompooh

2023/01/12 07:55

ありがとうございました。 以下、試みましたが症状は変わりませんでした。 ・Edgeのバージョンとドライバーの確認 「108.0.1462.76 (公式ビルド) (64 ビット)」で一致しておりました。 ・selenium4.7.2のインストール ・ご指示いただいたコードでの実行 ほかに何か原因考えられますでしょうか。
Demerara

2023/01/12 09:19 編集

同一の環境で実行してみましたが、問題なく遷移しました。 ということは、アンチウィルスソフトやブラウザ側の設定、または拡張機能等の影響で遷移が妨げられている可能性が考えられます。この場合、PC 環境で確認すべき点は多岐に渡りますが、とりあえず selenium のログを取ってみるのがいいと思います。 Service(executable_path=r"C:\Users\xxx(ユーザー名)\edgedriver_win64\msedgedriver.exe", log_path=r"C:\Users\User\selenium.log") といった形で出力ファイルのパスを指定することでログを出力できます。 出力されたログファイルの中に、[Error] や [Warning], [Critical] または [Fatal] 等の単語で始まる行がないか確認してください。
tompooh

2023/01/13 01:00

Service(executable_path=r"C:\Users\xxx(ユーザー名)\edgedriver_win64\msedgedriver.exe", log_path=r"C:\Users\xxx(ユーザー名)\selenium.log") 上記実行すると出力画面にこのようなもの以外出てこないです。正しく出力できていないような気がするのですが、やり方あっていますでしょうか。 <selenium.webdriver.edge.service.Service at 0x1b99e013748> log_pathでログを出力したい場所を指定していますが、指定したフォルダにもselenium.logというものは保存されていません。
Demerara

2023/01/13 02:22

それって サービスオブジェクトをコンソールに出力してませんか?回答に示したコードに、ログのパスを指定する引数を追加してくださいってことですよ?
tompooh

2023/01/13 05:47

失礼しました。ありがとうございます。 [Error] や [Warning], [Critical] または [Fatal]という言葉はないようです。 seleniumのログはこんな感じのものであっていますか? [1673588462.662][INFO]: Starting Microsoft Edge WebDriver 108.0.1462.76 (5feb330873638e9bb5dfe2a398aadcb50a36c860) on port 53619 [1673588462.662][INFO]: Please see https://aka.ms/WebDriverSecurity for suggestions on keeping Microsoft Edge WebDriver safe. [1673588465.159][INFO]: [c8562d2944281352254f4bc60bae56dc] COMMAND InitSession { "capabilities": { "alwaysMatch": { "browserName": "MicrosoftEdge", "ms:edgeOptions": { "args": [ ], "extensions": [ ] }, "pageLoadStrategy": "normal" }, "firstMatch": [ { } ] } } [1673588465.166][INFO]: Populating Preferences file: { "alternate_error_pages": { "enabled": false }, "autofill": { "enabled": false }, "browser": { "check_default_browser": false }, "distribution": { "import_bookmarks": false, "import_history": false, "import_search_engine": false, "make_chrome_default_for_user": false, "skip_first_run_ui": true }, "dns_prefetching": { "enabled": false }, "profile": { "content_settings": { "pattern_pairs": { "https://*,*": { "media-stream": { "audio": "Default", "video": "Default" } } } }, "default_content_setting_values": { "geolocation": 1 }, "default_content_settings": { "geolocation": 1, "mouselock": 1, "notifications": 1, "popups": 1, "ppapi-broker": 1 }, "password_manager_enabled": false }, "safebrowsing": { "enabled": false }, "search": { "suggest_enabled": false }, "translate": { "enabled": false } } [1673588465.169][INFO]: Populating Local State file: { "background_mode": { "enabled": false }, "ssl": { "rev_checking": { "enabled": false } } } [1673588465.175][INFO]: Launching Microsoft Edge: "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --allow-pre-commit-input --disable-background-networking --disable-backgrounding-occluded-windows --disable-client-side-phishing-detection --disable-default-apps --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --enable-automation --enable-blink-features=ShadowDOMV0 --enable-logging --log-level=0 --no-first-run --no-service-autorun --password-store=basic --remote-debugging-port=0 --test-type=webdriver --use-mock-keychain --user-data-dir="C:\Users\User~1\AppData\Local\Temp\scoped_dir5232_1544109545" data:, [1673588465.905][INFO]: resolved localhost to ["127.0.0.1","::1"]
Demerara

2023/01/13 06:45

--user-data-dir="C:\Users\User~1\AppData\Local\Temp\scoped_dir5232_1544109545" data:, ブラウザのオプションの最後おかしいですね。「data:,」とあります。画像で示されている URL と一致してます。 これはなんでしょう。このような文字列をコードのどこかに書いて覚えはありますか?ここには本来 URL 等が入力されるはずなんですが、謎の文字列が挿入されてますね…。ちょっと調べてみます。
tompooh

2023/01/13 06:56

ありがとうございます。通常はURLが入るのですね。 「scoped_dir5232_1544109545" data:,」の文字列の心当たりありません。 申し訳ありませんがお調べいただけると嬉しいです。
Demerara

2023/01/13 07:07

https://github.com/SeleniumHQ/selenium/issues/8061 GitHub に issue が上がってました。「data:,」というのは Chrome が開かれる際のデフォルトの URL で特に問題はないそうです。ただし、画面遷移しないのはドライバーの何らかのバグである可能性があるそうです。この方は、ポータブル版の Chrome を使うと質問と同じような現象に遭遇したそうです。 現在利用している Edge はポータブル版だったりしますか?
tompooh

2023/01/13 07:37

ありがとうございます。Edgeがポータル版であるか否かはどのように調べるかわかりますか?
Demerara

2023/01/13 07:43

よくよく考えたら Edge の実行パスを別途指定しているわけではないので、ポータブル版である可能性はないですね。ポータブル版で質問にあるコードを実行すると実行されないですし、なによりログにあるパスは通常の Edge が保存される場所を示してます。 うーん、私の方ではちょっと原因がわからないですね。少なくとも私の環境では問題なく動いているコードのため、質問者さんの環境の問題としか言えないような気がします。
tompooh

2023/01/13 08:00

承知しました。いろいろ調べていただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問