C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

IEからEdgeへの移行について

[トピック内 13 記事 (1 - 13 表示)]  << 0 >>

■97888 / inTopicNo.1)  IEからEdgeへの移行について
  
□投稿者/ RS (17回)-(2021/08/04(Wed) 16:33:36)

分類:[.NET 全般] 

先日同じタイトルで質問した者です。

.NETでselenium webdriverを使用し、Edgeを操作したいのですが
インスタンスを作成する部分(driver = New EdgeDriver)でエラーが起きてしまいます。
※Dim driver As IWebDriver = Nothingと宣言しています。

エラー内容は「Unexpected error. Unknown error」となっていて、調べたところ
プロジェクトに含めたEdgeのDriverと、実際にインストールされているEdgeのバージョンが
違うといったことが出てきたのですが、確認したところ、どちらも最新で相違ありませんでした。
何が原因でエラーとなっているのでしょうか?詳しい方いらっしゃいましたらご教授お願いいたします。

また、webdriverの関数の説明(クイックヒントでしたっけ?)や、エラーが全て英語で表示
されるのですが、これを日本語で表示することはできるのでしょうか?
ちなみに、webdriver以外の部分は日本語で表示されます。
ご存じの方いらっしゃいましたら、ご教授お願いいたします。

引用返信 編集キー/
■97889 / inTopicNo.2)  Re[1]: IEからEdgeへの移行について
□投稿者/ 大谷刑部 (146回)-(2021/08/04(Wed) 17:01:18)
No97888 (RS さん) に返信
> 先日同じタイトルで質問した者です。
>
> .NETでselenium webdriverを使用し、Edgeを操作したいのですが
> インスタンスを作成する部分(driver = New EdgeDriver)でエラーが起きてしまいます。
> ※Dim driver As IWebDriver = Nothingと宣言しています。
>
> エラー内容は「Unexpected error. Unknown error」となっていて、調べたところ
> プロジェクトに含めたEdgeのDriverと、実際にインストールされているEdgeのバージョンが
> 違うといったことが出てきたのですが、確認したところ、どちらも最新で相違ありませんでした。
> 何が原因でエラーとなっているのでしょうか?詳しい方いらっしゃいましたらご教授お願いいたします。

↓詳しくはないですが、下記のページのクロームを操作する場合のコードを参考にすると、
https://seikousyahenomichi.com/vb-net_how_to_selenium/

Dim WebDriver As IWebDriver
WebDriver = New Chrome.ChromeDriver()

の部分をChromeをEdgeに置き換えて考えると、

Importsで名前空間を省略できるように定義してないのに、EdgeDriverの上位の名前空間を省略してるからなのでは?
と思えます。
引用返信 編集キー/
■97890 / inTopicNo.3)  Re[2]: IEからEdgeへの移行について
□投稿者/ RS (18回)-(2021/08/04(Wed) 17:06:03)
No97889 (大谷刑部 さん) に返信
> ■No97888 (RS さん) に返信
>>先日同じタイトルで質問した者です。
>>
>>.NETでselenium webdriverを使用し、Edgeを操作したいのですが
>>インスタンスを作成する部分(driver = New EdgeDriver)でエラーが起きてしまいます。
>>※Dim driver As IWebDriver = Nothingと宣言しています。
>>
>>エラー内容は「Unexpected error. Unknown error」となっていて、調べたところ
>>プロジェクトに含めたEdgeのDriverと、実際にインストールされているEdgeのバージョンが
>>違うといったことが出てきたのですが、確認したところ、どちらも最新で相違ありませんでした。
>>何が原因でエラーとなっているのでしょうか?詳しい方いらっしゃいましたらご教授お願いいたします。
>
> ↓詳しくはないですが、下記のページのクロームを操作する場合のコードを参考にすると、
> https://seikousyahenomichi.com/vb-net_how_to_selenium/
>
> Dim WebDriver As IWebDriver
> WebDriver = New Chrome.ChromeDriver()
>
> の部分をChromeをEdgeに置き換えて考えると、
>
> Importsで名前空間を省略できるように定義してないのに、EdgeDriverの上位の名前空間を省略してるからなのでは?
> と思えます。

すみません。記述が足りていませんでした。
Imports OpenQA.Selenium.Edge
とインポートしているのでそこは問題ないかと思います。

引用返信 編集キー/
■97891 / inTopicNo.4)  Re[1]: IEからEdgeへの移行について
□投稿者/ 魔界の仮面弁士 (3156回)-(2021/08/04(Wed) 17:45:55)
No97888 (RS さん) に返信
> インスタンスを作成する部分(driver = New EdgeDriver)でエラーが起きてしまいます。

ドライバーパス等は指定せず、引数無しでインスタンスを生成したいのですね?


Dim driver As OpenQA.Selenium.IWebDriver = New OpenQA.Selenium.Edge.EdgeDriver()

がエラーになるという事は、Selenium しか導入されておらず、
Edge ブラウザに対応する WebDriver がまだ入っていないのでは無いでしょうか。
実行フォルダーに、対応するバージョンの msedgedriver.exe が配置されているかどうかを確認してみてください。

https://developer.microsoft.com/ja-jp/microsoft-edge/tools/webdriver/
https://www.nuget.org/packages/Selenium.WebDriver.MSEdgeDriver/
引用返信 編集キー/
■97892 / inTopicNo.5)  Re[2]: IEからEdgeへの移行について
□投稿者/ RS (19回)-(2021/08/04(Wed) 17:55:22)
No97891 (魔界の仮面弁士 さん) に返信
> ■No97888 (RS さん) に返信
>>インスタンスを作成する部分(driver = New EdgeDriver)でエラーが起きてしまいます。
>
> ドライバーパス等は指定せず、引数無しでインスタンスを生成したいのですね?
>
>
> Dim driver As OpenQA.Selenium.IWebDriver = New OpenQA.Selenium.Edge.EdgeDriver()
>
> がエラーになるという事は、Selenium しか導入されておらず、
> Edge ブラウザに対応する WebDriver がまだ入っていないのでは無いでしょうか。
> 実行フォルダーに、対応するバージョンの msedgedriver.exe が配置されているかどうかを確認してみてください。
>
> https://developer.microsoft.com/ja-jp/microsoft-edge/tools/webdriver/
> https://www.nuget.org/packages/Selenium.WebDriver.MSEdgeDriver/

実行フォルダーに、msedgedriver.exeが配置はされているのですが
1つ気になる点がありまして、msedgedriver.exeのほかに、WebDriver.dllとWebDriver.xmlも
一緒に配置されます。これは問題ないのでしょうか?
これらの更新日時が2018年となっているので気になって、、、

引用返信 編集キー/
■97893 / inTopicNo.6)  Re[3]: IEからEdgeへの移行について
□投稿者/ 魔界の仮面弁士 (3157回)-(2021/08/04(Wed) 18:42:09)
No97892 (RS さん) に返信
> 実行フォルダーに、msedgedriver.exeが配置はされているのですが
> 1つ気になる点がありまして、msedgedriver.exeのほかに、WebDriver.dllとWebDriver.xmlも
> 一緒に配置されます。これは問題ないのでしょうか?
> これらの更新日時が2018年となっているので気になって、、、

Selenium4 ではなく、Selenium3 をお使いでしょうか。

NuGet で Selenium.WebDriver を参照しているのだとすれば、パッケージのリリース日が
 2018-10-31T20:51:53Z バージョン 3.141.0
 2020-11-10T14:53:21Z バージョン 4.0.0-alpha07
 2021-06-07T17:28:51Z バージョン 4.0.0-beta4
となっていますね。


どのように構築したのか、詳細な環境を明示できますか?

1) Visual Studio のバージョン
2) プロジェクトのターゲット フレームワーク
3) NuGet 参照がある場合、プロジェクトは PackageReference と packages.config のいずれの方式にしているか
4) NuGet 参照がある場合、何を含めたか。手動で参照設定したものはあるか。
5) WebDriver.dll のファイルバージョンおよび更新日時

--- 手元の環境 ---
1) VS2019 v16.10.4
2) .NET Framework 4.8
3) PackageReference
4) "Selenium.WebDriver" ; 4.0.0-beta4
  "Selenium.WebDriver.MSEdgeDriver" ; 92.0.902.62
5) 4.0.0.0 ; 2021/06/08 02:10:50
引用返信 編集キー/
■97896 / inTopicNo.7)  Re[4]: IEからEdgeへの移行について
□投稿者/ RS (20回)-(2021/08/05(Thu) 09:41:59)
No97893 (魔界の仮面弁士 さん) に返信
> ■No97892 (RS さん) に返信
>>実行フォルダーに、msedgedriver.exeが配置はされているのですが
>>1つ気になる点がありまして、msedgedriver.exeのほかに、WebDriver.dllとWebDriver.xmlも
>>一緒に配置されます。これは問題ないのでしょうか?
>>これらの更新日時が2018年となっているので気になって、、、
>
> Selenium4 ではなく、Selenium3 をお使いでしょうか。
>
> NuGet で Selenium.WebDriver を参照しているのだとすれば、パッケージのリリース日が
>  2018-10-31T20:51:53Z バージョン 3.141.0
>  2020-11-10T14:53:21Z バージョン 4.0.0-alpha07
>  2021-06-07T17:28:51Z バージョン 4.0.0-beta4
> となっていますね。
>
>
> どのように構築したのか、詳細な環境を明示できますか?
>
> 1) Visual Studio のバージョン
> 2) プロジェクトのターゲット フレームワーク
> 3) NuGet 参照がある場合、プロジェクトは PackageReference と packages.config のいずれの方式にしているか
> 4) NuGet 参照がある場合、何を含めたか。手動で参照設定したものはあるか。
> 5) WebDriver.dll のファイルバージョンおよび更新日時
>
> --- 手元の環境 ---
> 1) VS2019 v16.10.4
> 2) .NET Framework 4.8
> 3) PackageReference
> 4) "Selenium.WebDriver" ; 4.0.0-beta4
>   "Selenium.WebDriver.MSEdgeDriver" ; 92.0.902.62
> 5) 4.0.0.0 ; 2021/06/08 02:10:50

Seleniumはパッケージマネージャコンソールウィンドウからインストールしました。
参照に追加されたWebDriverのバージョンを確認したところ、3.141.0となっていました。
これが原因ですかね、、、

開発環境は以下となります。
1) VS2019 v16.7.5
2) .NET Framework 4.5.2
3) packages.config
4)
5) 3.141.0 ; 2018/10/31 &#8207;&#8206;9:53:56

すみません4)に関してはよく分かりません、、、手動で参照設定したものはないとないです。
とりあえずSelenium4を参照するようにしてみます!
ご丁寧にありがとうございます。




引用返信 編集キー/
■97897 / inTopicNo.8)  Re[4]: IEからEdgeへの移行について
□投稿者/ kuma (3回)-(2021/08/05(Thu) 10:01:24)
横からで失礼します
私も最近知っていま開発しているのですが
もし開発がvb.netかC#でEdgeだけ操作なら
「WebView2」を利用するのも一つの手ではあります。
https://docs.microsoft.com/ja-jp/microsoft-edge/webview2/
https://docs.microsoft.com/ja-jp/microsoft-edge/webview2/get-started/winforms
https://web.biz-prog.net/readme/webview_new.html

必要な環境
・WebView2ランタイム または Microsoft Edge (Chromium) カナリアチャネル
・VisualStudio 2017以降
・.NET Framework 4.6.2以降

以前より.netで使われていたのがIEベースだったのがEdgeベースに変わったもので
Microsoft Edge (Chromium) カナリアチャネルなら最新版を維持してくれます。
https://1-notes.com/microsoft-edge-insider-channels/#

ちょっとクセがありますが、selenium より使える機能が増えるのと
ランタイムの調整が必要ないのでオススメです
引用返信 編集キー/
■97898 / inTopicNo.9)  Re[5]: IEからEdgeへの移行について
□投稿者/ kuma (4回)-(2021/08/05(Thu) 10:03:19)
訂正
×以前より.netで使われていたのがIEベースだったのがEdgeベースに変わったもので

○以前より.netで使われていた「WebView」がIEベースだったのがEdgeベースに変わったもので
引用返信 編集キー/
■97899 / inTopicNo.10)  Re[5]: IEからEdgeへの移行について
□投稿者/ RS (21回)-(2021/08/05(Thu) 10:10:06)
No97897 (kuma さん) に返信
> 横からで失礼します
> 私も最近知っていま開発しているのですが
> もし開発がvb.netかC#でEdgeだけ操作なら
> 「WebView2」を利用するのも一つの手ではあります。
> https://docs.microsoft.com/ja-jp/microsoft-edge/webview2/
> https://docs.microsoft.com/ja-jp/microsoft-edge/webview2/get-started/winforms
> https://web.biz-prog.net/readme/webview_new.html
>
> 必要な環境
> ・WebView2ランタイム または Microsoft Edge (Chromium) カナリアチャネル
> ・VisualStudio 2017以降
> ・.NET Framework 4.6.2以降
>
> 以前より.netで使われていたのがIEベースだったのがEdgeベースに変わったもので
> Microsoft Edge (Chromium) カナリアチャネルなら最新版を維持してくれます。
> https://1-notes.com/microsoft-edge-insider-channels/#
>
> ちょっとクセがありますが、selenium より使える機能が増えるのと
> ランタイムの調整が必要ないのでオススメです

ありがとうございます!現在開発中というよりは調査の段階なので
WebView2とSelenium両方調べて検討していきたいと思います!

引用返信 編集キー/
■97900 / inTopicNo.11)  Re[6]: IEからEdgeへの移行について
□投稿者/ RS (22回)-(2021/08/05(Thu) 10:12:31)
SeleniumのVerを最新のものにしたら、エラーが解消され無事に実行することができました。
みなさま、ご丁寧にご教授してくださり、ありがとうございました!

解決済み
引用返信 編集キー/
■97901 / inTopicNo.12)  Re[5]: IEからEdgeへの移行について
□投稿者/ 魔界の仮面弁士 (3158回)-(2021/08/05(Thu) 10:59:29)
No97896 (RS さん) に返信
>>4) NuGet 参照がある場合、何を含めたか。手動で参照設定したものはあるか。
> すみません4)に関してはよく分かりません、、、手動で参照設定したものはないとないです。

[ツール]-[NuGet パッケージ マネージャー]-[ソリューションの NuGet パッケージの管理]
を選択し、検索ボックスを空にして[インストール済み]タブをクリックすれば分かります。


msedgedriver.exe については、通常版(Stable)であれば 92.0.902.62 のはずですが、
それがお使いの Edge のバージョンと合致していることを確認しておいてください。
Canary 版だと 94.0.973.0
Dev 版だと 93.0.961.10
Beta 版だと 93.0.961.11
が現行バージョンです。


> 2) .NET Framework 4.5.2
あえて古いバージョンを使い続けているということでしょうか。

Win 8 向けなら 4.5〜4.6.1 ※OSがサポート期限切れ
Win 8.1向けなら 4.5.1〜4.8
Win 10 向けなら 4.6〜4.8 ※現行版なら通常は 4.8 が導入済み

Server 2008 R2 向けなら 4〜4.8
Server 2012   向けなら 4.5〜4.8
Server 2012 R2 向けなら 4.5.1〜4.8
Server 2016   向けなら 4.6.2〜4.8
Server 2019   向けなら 4.7.2〜4.8


> 1) VS2019 v16.7.5

3rd ですか。
それなら、先月に v16.7.17 がリリースされていますよ。

2021/07/13 v16.4.24
2021/07/13 v16.7.17
2021/07/13 v16.9.9
2021/07/13 v16.11 Preview 3
2021/07/20 v16.10.4


v16.4.x … 2nd サービス ベースライン / サポート期限 2021年10月
v16.7.x … 3rd サービス ベースライン / サポート期限 2022年4月
v16.9.x … 4th サービス ベースライン / サポート期限 2022年10月
v16.11.x … 5th サービス ベースライン(VS2019の最終版) / サポート期限 2029年4月
引用返信 編集キー/
■97981 / inTopicNo.13)  Re[6]: IEからEdgeへの移行について
□投稿者/ 大谷刑部 (148回)-(2021/08/16(Mon) 11:56:12)
No97899 (RS さん) に返信
> ありがとうございます!現在開発中というよりは調査の段階なので
> WebView2とSelenium両方調べて検討していきたいと思います!

エラーハンドリング含めて細かく実装したいならSelenium
UI重視で疑似ブラウザー的に動作させたいならWebView2
ですかね。
(Webviewはエラーがコードしか取得できず、メッセージ文言用のプロパティーがないので)

WebView2は
コントロールなので、プロパティーをある程度使いこなせば、「検索」、「戻る」、「進む」くらいは簡単に実装できるので、コーディングは楽は楽です

但し、
.NetFrameworkのバージョン問題の他に、

・起動が結構重たいので、32bit OSで実装するには不向き
・同様の理由でコントロール起動完了までのWait処理がほぼ必須
・細かい実装になるとJavaScriptとの連携多用になりがち

という問題もあります。

使用環境次第ってとこはあるかもですね。
Win7 32bitとかで動かすと結構(Webview2の)起動時エラーが多発します。

引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ