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

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

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

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

selenium

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

Q&A

1回答

297閲覧

Python Selenium 自動操作でログインができません

kenken0117

総合スコア1

Python

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

selenium

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

0グッド

0クリップ

投稿2024/10/14 11:56

PythonのSelenium4でEdgeの自動操作を実装しています。
社内のシステムにて、自動ログインを試みています。
Edgeのバージョンと同じバージョンのドライバがなかったため、一番近しいものをダウンロードして使っています。

以下、状況です。
・ログイン画面を開く:OK
・IDを入力する:OK
・PASSを入力する:OK
・ログインボタンを押す:OK
・ログイン後のホーム画面に遷移:NG

ログインボタンを押した後、なぜかホーム画面に遷移するのではなく、再びログイン画面に戻ってしまいます。
なお、ログイン画面を開いてからinput()を実施して自動操作を停止させ、手動でIDとPASSを入力してログインボタンを押しても、同じ挙動でした。

また、IEで試したところ、ログイン後のホーム画面への遷移も成功しました。
ただし、IEは動作が不安定であり、ログイン画面を開く際にフリーズしてしまうことが多いため、Edgeで動作させたいです。

Web系には詳しくないのですが、Cookies等の影響なのでしょうか。
それとも、Options等の設定不足の可能性もありますでしょうか。

社内システムのため、元のhtml等をこの場で共有することはできません。
大変恐縮ではございますが、似たような経験のある方がいらっしゃれば、ぜひともお知恵をお貸しいただけないでしょうか。
よろしくお願いいたします。

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

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

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

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

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

otn

2024/10/14 17:29

記述が無いですが、そもそも、全手動でうまく行くのでしょうか? Step1:Edgeを手動で起動する Step2:プライベートウィンドウを開く Step3:プライベートウィンドウ画面で、目的のページを開いてそこで操作して期待通り動くか? (プライベートウィンドウを開くのは…メニューから)
bsdfan

2024/10/15 00:32

上のコメントとおなじなのですが、パスワードが間違っていないかとか、その社内システムがEdgeに対応していない可能性とか、そういうところも確認必要と思います。
kenken0117

2024/10/24 14:33

コメントいただきありがとうございます。 お返事が遅れてしまい申し訳ございません。 To otn様 プライベートウィンドウでの動作確認はしたことがありませんでした。 Seleniumでドライバを通じてEdgeを開く際は、プライベートウィンドウになってしまうため、上記確認をまずは行うべきという認識で正しいでしょうか? 早速明日試してみます。 ありがとうございます。 To bsdfan様 普段はEdgeで開いております。 なので、SleniumのEdgeドライバで自動化できると考えておりました。 パスワード等は問題ないことも確認しております。 コメントいただき、ありがとうございました。
otn

2024/10/25 13:03 編集

> Seleniumでドライバを通じてEdgeを開く際は、プライベートウィンドウになってしまうため、 いいえ。プライベートウィンドウではなくて、Seleniumからブラウザを起動すると(意図的にオプションで変更しない限り)プロファイルが新規作成のプロファイルになります。プロファイルとはブラウザの設定やアドオン、キャッシュ、Cookieその他全部が入る場所なので、それらがまっさらの状態ですね。 プライベートウィンドウとの差異はちゃんと調べてませんが、手元のEdgeでは拡張機能が引き継がれるので、新規プロファイルと同じではありません。 > なお、ログイン画面を開いてからinput()を実施して自動操作を停止させ、手動でIDとPASSを入力してログインボタンを押しても、同じ挙動でした。 「同じ挙動」というのは「ホーム画面に遷移するのではなく、再びログイン画面に戻ってしまいます。」ということですよね?「新規プロファイルだと手動でも駄目」ということから、手動のプライベートウィンドウでうまく行くようなら、両者の違いの部分に原因があるのかと思います。 といっても、私が、両者の違いをリストアップできるわけではないのですが。 bsdfanさんへの回答から、「手動で起動したEdgeで、その後も全部手動」であればログインできるようなので、「手動で起動したEdgeで、拡張機能を全部無効にして、それから全部手動」でログインできるかやってみると拡張機能に原因があるかどうかが分かるかと思います。他に、「キャッシュクリア」「Cookie削除」など1つずつ順番にやってみる。 まあ、原因が分かったからといって必ずしも解決できるわけではないですが。 たまに「プログラム内のタイプミスでした」というオチが付く質問もあるので、念のためそのあたりも目検以外のチェックをするのも良いかと思います。「プログラム内の、IDやパスワードを手動起動のEdgeにコピペしてみてログイン」とか。 私は、「6文字以上くらいの意味が無い文字列」が同じかどうかを自分の目検でのチェックを信用してません。毎回事前にはそこまでしませんが、うまく行かない場合は目検以外の確認をします(基本、そういうのはコピペするのですが、やむを得ず手打ちの場合)。
kenken0117

2024/10/27 13:31

To otn様 細かいところまでわかりやすくご教示いただき、ありがとうございます。 手動でEdgeの設定をいろいろと変えて確認をしたところ、そもそもがEdgeのIEウィンドウを使用する設定になっており、IEウィンドウを無効化すると、ログイン時に元のログイン画面に戻ってしまう現象を確認することができました。 これまでもIEモードではSeleniumで正しくログインできていたため、辻褄が合いました。 いろいろとご相談に乗ってくださり、ありがとうございました。
otn

2024/10/27 13:51

なるほど。 Edge設定画面の、「Internet Explorer モード ページ」に登録してあったということですか。 それは新規プロファイルだと駄目ですね。プライベートモードだと効きそうですが。 なんと、MSのページにSeleniumからIEモードで開くやり方が書いてありますね。 試してないので、アドバイスできませんが。 https://learn.microsoft.com/ja-jp/microsoft-edge/webdriver-chromium/ie-mode?tabs=c-sharp#automate-ie-mode-in-microsoft-edge
guest

回答1

0

Edgeでの自動ログインがうまくいかない問題について考えられる原因として、ブラウザバージョンの互換性やCookies、セッション管理の問題が考えられます。まず、使用しているEdgeブラウザとSelenium WebDriverのバージョンが互換性があることを確認しましょう。また、Cookiesやセッション管理が正しく行われているか確認することも重要です。さらに、要素が完全にロードされるのを待つために明示的な待機を実装し、WebDriverのオプションや設定を再確認してください。エラーログを詳細に記録して、ログインプロセス中に発生する例外やエラーを特定するのも有効です。これでも解決しない場合は、他のブラウザを試すか、ブラウザとSelenium WebDriverの最新バージョンに更新することを検討してください。

これでお役に立てましたでしょうか?もっと詳細な情報が必要でしたら、お知らせください。

投稿2024/10/15 04:51

jeffrey597doss

総合スコア34

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

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

kenken0117

2024/10/24 14:37

ご回答いただき、ありがとうございます。 実装したのはログインボタンを押すまででして、特にエラーは出ていません。 明示的なwaitも十分に長く入れて動作確認をしております。 ブラウザバージョンとドライバは完全に一致するものがなかったため、最も近いものを使用しております。 社内でブラウザのバージョン指定があるため、これについては完全に一致させることができません。 Cookiesやセッション管理が疑わしいとは感じておりましたが、具体的に何をどうすればよいのかがわからない状態でした。 一つずつ、再度調べ直してみます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問