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

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

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

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

Q&A

解決済

1回答

12116閲覧

Windows10+SeleniumBasicで発生している謎現象について

mmomxe

総合スコア1

selenium

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

0グッド

0クリップ

投稿2020/10/05 13:38

編集2020/10/05 13:39

Windows10にSeleniumBasicをインストールしましたが、同梱されている動作確認用のスクリプトさえ動きません。
自宅のWindows10のPC3台ではどれも正常なのですが、知人のPCでのみ発生します。
何か考えられる可能性があるでしょうか?

###(1)環境および再現手順:
Windows10(64bit)
SeleniumBasic2.0.9.0を
https://github.com/florentbr/SeleniumBasic/releases/tag/v2.0.9.0
からダウンロードしてインストールし、最新版のChrome(85.0.4183.121)に対応するChromeドライバを
https://sites.google.com/a/chromium.org/chromedriver/downloads
からバージョン85.0.4183.87用を選び、SeleniumBasicをインストールしたフォルダ上に上書きしました。
(ユーザーフォルダ\AppData\Local\SeleniumBasic)
ここまでは正常にできていることを確認しています。

###(2)発生しているエラー
SeleniumBasicに含まれているサンプルスクリプト(chromedriver.exeが置かれているフォルダ下にあるScriptsフォルダ)にあるStartChrome.vbsを実行すると
TimeoutError
The Driver failed to open the listening port 127.0.0.1:54555 within 10s
コード: A00A0015
ソース: Selenium
というエラーが発生します。

###(3)該当のソースコード
SeleniumBasicに同梱されているStartChrome.vbsですので、中身は最低限で

Set driver = CreateObject("Selenium.ChromeDriver") driver.Start WScript.Echo "Click OK to quit" driver.Quit

この2行目で発生しています。

###(4)試したこと
Windows版Seleniumは.Net Framework3.5がインストールされていないと動かないため、そちらのインストールも確認していただきましたが問題ありませんでした。
(.Net Framework3.5がインストールされていない時は、エラーメッセージがOLEオートメーションのエラーになるので、これではないようです)

何か他に調べるべき点があるでしょうか。助けていただければ幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Chrome自身のバージョンが古い可能性はありませんか?
現状 バージョン: 85.0.4183.121 が最新
ChromeとChromeDriverのバージョンが合わないと動きません。
(最近そのような事が起きたので)

訂正
バージョン: 85.0.4183.121で揃えているとの事なので、あとは
Chrometとの通信自体がブロックされている可能性があります。
ChromeとChromeDriverはWebSocket Protocolという仕組みで通信しています。
よく使われる80、443、8181番、エラーで表示されている54555番ポートがローカル(127.0.0.1)で開いているかファイヤーウォールを確認してください。

TimeoutError
The Driver failed to open the listening port 127.0.0.1:54555 within 10s

(ChromeDriverは複数のポートを使ったりするので正確なポート範囲が不明なんだよな...)

投稿2020/10/05 16:52

編集2020/10/05 17:51
kuma_kuma_

総合スコア2506

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

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

mmomxe

2020/10/05 19:43

返信ありがとうございます。 自宅のPCのWindowsファイアウォールで、80,443,8181,50000-59999をブロック(受信・送信ともに)してみても、普段のChromeのネットに対するアクセスは全面的にブロックできているのに、StartChrome.vbsではそんなエラーは出ないです(ブラウザが立ち上がることに支障はありません)。 chromedriver.exeを直接実行したときに表示される、 Starting ChromeDriver 85.0.4183.87 .... on port 9515 を参考にして、ポート9515も塞いでみたのですがダメでした。 とにかく、自分のPCでも同じ条件が再現される条件を見つけられれば、知人のPCも対策できそうなんですがね…
mmomxe

2020/10/05 23:42

追加情報です。 chromedriver.exeを直接実行すると、普通ならコマンドプロンプトが開いて Starting ChromeDriver.... on port 9515 で待機状態になり、コマンドプロンプトを閉じるまでそのままになるはずなのですが、問題のPCでは「ウインドゥが一瞬開いてすぐ閉じる」そうです。 ウイルス対策ソフトなどによって、chromedriver.exeが即時消されているのが原因、ということなのでしょうか? ちなみにソースネクストのZEROウイルスセキュリティがインストールされているようです。
Y.H.

2020/10/06 00:28

>問題のPCでは「ウインドゥが一瞬開いてすぐ閉じる」 コマンドプロンプトを起動して、起動したコマンドプロンプトからchromedriver.exeを実行すると何かエラーが表示されてませんか?
mmomxe

2020/10/06 00:30

それを今、確認していただいています。 エラーで落ちているのかもしれませんね。 ちなみに同じフォルダにあるiedriver.exeは正常に動くようです。
kuma_kuma_

2020/10/06 01:44

WebSocket ははじめの通信自体はHTTPで行われます。 これでChromeが起動するのですがWebSocketに移行した際通信がブロックされると Chromeがシャットダウンします。 先にも書いたのですがChromeDriver のポート変更幅が大きくてどれか?が特定できないんですよ でもIPは127.0.0.1で固定のはずですが...?
mmomxe

2020/10/06 02:09

そうですね。確かにTimeout Errorが出るたびにポート番号は違うようです。 要するに、ポートが問題というより、chromedriver.exeを起動したのにすぐに(エラーか何かで)落ちる→通信できないからタイムアウト、ということではないかと思います。
kuma_kuma_

2020/10/06 02:40

WebSocket自体は単純な通信方式です。 WebSocketをブロックするとchromeの開発コンソール自体使えなくなります。 (同じ方法なので) あとはアンチウイルスソフトでchromedriver自体の通信をブロックしているとかでしょうか? (アンチウイルスソフトによっては通信をするソフト=悪意があるソフトと認定する場合があります。)
mmomxe

2020/10/06 05:31

問い合わせしていたことに返信がきました。 chromedriver.exeを実行したときに発生しているメッセージ(正規の分以外)は、 [1601961006.360][SEVERE]: listen() returned an error: アクセス許可で禁じられた方法でソケットにアクセスしようとしました。(0x271D) [1601961006.360][SEVERE]: bind() returned an error: アクセス許可で禁じられた方法でソケットにアクセスしようとしました。(0x271D) Unable to start server with either IPv4 or IPv6. Exiting... です。
kuma_kuma_

2020/10/06 05:40

メッセージからすると初回HTTPによる接続開始は成功 その後WebSocketとの通信がブロックされているようになっていますね > アクセス許可で禁じられた方法でソケットにアクセスしようとしました。 一応下記方法で「chromedriver.exeを検査の対象からはずす」のはどうでしょうか? (ただそれと通信ブロックは別な設定がいるように感じます。) あと動作確認の為一時的に「ウイルスセキュリティ」を停止してみるとか? https://faq.sourcenext.com/app/answers/detail/a_id/5051/~/%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%84%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%82%92%E6%A4%9C%E6%9F%BB%E3%81%AE%E5%AF%BE%E8%B1%A1%E3%81%8B%E3%82%89%E3%81%AF%E3%81%9A%E3%81%99%E3%81%AB%E3%81%AF%EF%BC%9F%E3%80%80%E3%80%90%E3%82%A6%E3%82%A4%E3%83%AB%E3%82%B9%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%80%91
mmomxe

2020/10/06 06:04

同じ「ウイルスセキュリティ」(体験版)をインストールしてみましたが、chromedriver.exeの実行には全く影響していませんね。今までどおり動きます。 chromedriver.exeを単体で起動時、ポート9515を使用するというメッセージでしたが、このポートがふさがっているかどうかは関係ないでしょうか? 手元のXAMPPをわざとポート9515で動かしても、chromedriver.exeは「port9515」というメッセージのまま平気で動いてくれます…
kuma_kuma_

2020/10/06 07:11 編集

不思議ですね...(ポートが決まらないのしょうがないので) まずポートがファイアウォールでブロックされている場合はchromeの「開発コンソール自体使えない」状態となります。(chromedriver.exeは開発コンソールと同じことをしているだけですから) またローカルId(127.0.0.1)がブロックされていても同じで開発コンソールは使えない。 とすると「ウイルスセキュリティ」自体が不明なソフトの場合通信をブロックするのではないか?と仮説をたてて確認をお願いした所問題なく動く... 一応書いておきますとこちらのバージョンの組み合わせは完全に一致していませんが Chrome バージョン: 85.0.4183.121 ChromeDriver v 83.0.4103.39 これで動きます。 あとは「Selenium.dll」と同じフォルダに「chromedriver.exe」が入っている事ぐらいでしょうか...
mmomxe

2020/10/06 08:00

やっとのことで、同じエラーを出すことに成功しました。 ウイルスセキュリティの「設定」→「不正侵入対策」を開き、「アプリケーション」のタブにchromedriver.exeをアプリケーションとして「追加」し、動作として「インターネットへアクセスさせない」を登録します。 その後、chromedriver.exeを実行すると、教えてもらったのと全く同じエラーメッセージが出ました。 この「アプリケーションのリスト」は、あえて手動で追加しなくても問題を引き起こすことがあります。 「上記以外のプログラムの処理方法」を「アクセスを拒否」にしていると、登録しているアプリ以外の全てが通信を拒否されることになり、chromedriverもソケット通信を妨害され動きません。 「上記以外のプログラムの処理方法」を「その都度メッセージを表示」にしていると、一時的にブロックされ「許可」か「ブロック」を選ばせる画面になります。その時、「許可」か「ブロック」かの決定が、アプリケーションのリストに自動追加されます。 この項目は、初期状態では「あと7日間は自動的に許可する」という設定になっています。 私は「ウイルスセキュリティ」をインストールしたばかりなので、この設定です。 問題が発生している方のPCでは、ウイルスセキュリティを入れてから7日以上は経過していますから、恐らく「アクセスを拒否」の方に自動的に切り替わっているのでしょう。 その状態で、今回初めてchromedriver.exeを使ったので、許可リストにないものは全て拒否されてしまい、今回のような現象が出たのかもしれません。 ほぼこれが9割がた正解でしょうね。 念のため、ウイルスセキュリティの状態を確認してもらいます。
kuma_kuma_

2020/10/06 09:12

> ウイルスセキュリティの状態を確認 やはりウイルスセキュリティの別の設定でしたか。 それにしても「あと7日間は自動的に許可する」とか意味不明の設定ですね。
mmomxe

2020/10/06 09:17

ようやくこれで解決しました。 本当に厄介な現象でしたが、原因を特定できたのも皆さまのおかげです。 大変お世話になりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問