質問するログイン新規登録

回答編集履歴

3

見直しキャンペーン中

2023/08/09 10:33

投稿

TN8001
TN8001

スコア10180

answer CHANGED
@@ -1,3 +1,11 @@
1
+ 追記
2
+
3
+ Selenium 4.6以降Selenium自身にドライバDL機能が含まれています。
4
+ [Selenium Manager (Beta) | Selenium](https://www.selenium.dev/ja/documentation/selenium_manager/)
5
+ [[.NET] Selenium に純正の WebDriver Manager が付属するようになった話 : @jsakamoto](https://devadjust.exblog.jp/29530356/)
6
+
7
+ ---
8
+
1
9
  2021/9/1 追記
2
10
 
3
11
  別質問で言及されてしまったので、現在の方法を書いておきます(すごく簡単になっています)

2

見直しキャンペーン中

2023/07/17 06:06

投稿

TN8001
TN8001

スコア10180

answer CHANGED
@@ -1,116 +1,116 @@
1
- 2021/9/1 追記
2
-
3
- 別質問で言及されてしまったので、現在の方法を書いておきます(すごく簡単になっています)
4
- [C# - C# WebDriverManagerで、今インストールされてるEdgeのバージョンに合わせてEdgeDriverをセットアップする|teratail](https://teratail.com/questions/356826)
5
-
6
- 回答当時は`WebDriverManager 2.7.0`でしたが、今は`2.11.3`とだいぶバージョンが上がっています。
7
- [NuGet Gallery | WebDriverManager 2.11.3](https://www.nuget.org/packages/WebDriverManager/2.11.3)
8
-
9
- GitHubにすべて書いてありますが、`SetUpDriver`で`VersionResolveStrategy.MatchingBrowser`オプションをつけるだけで終了です。
10
- [rosolko/WebDriverManager.Net: Automatic Selenium Webdriver binaries management for .Net](https://github.com/rosolko/WebDriverManager.Net#automatic-way)
11
-
12
- ```C#
13
- using OpenQA.Selenium.Chrome;
14
- using System;
15
- using WebDriverManager;
16
- using WebDriverManager.DriverConfigs.Impl;
17
- using WebDriverManager.Helpers;
18
-
19
- namespace Questions227899
20
- {
21
- class Program
22
- {
23
- static void Main()
24
- {
25
- Console.WriteLine("ChromeDriverを取得中");
26
-
27
- // 最新版
28
- //new DriverManager().SetUpDriver(new ChromeConfig());
29
-
30
- // インストールされているバージョン
31
- new DriverManager().SetUpDriver(new ChromeConfig(), VersionResolveStrategy.MatchingBrowser);
32
-
33
- Console.WriteLine("ChromeDriverを取得終了");
34
-
35
- var chrome = new ChromeDriver();
36
- chrome.Navigate().GoToUrl("https://teratail.com/");
37
- }
38
- }
39
- }
40
- ```
41
-
42
- ---
43
-
44
- 以下古い内容
45
-
46
- NuGetは`Selenium.WebDriver` `WebDriverManager`の2つだけの状態で、
47
-
48
- Chromeが常に最新版であれば、
49
- ```C#
50
- using System;
51
- using OpenQA.Selenium.Chrome;
52
- using WebDriverManager;
53
- using WebDriverManager.DriverConfigs.Impl;
54
-
55
- namespace Questions227899
56
- {
57
- class Program
58
- {
59
- static void Main()
60
- {
61
- Console.WriteLine("ChromeDriverを取得中");
62
- new DriverManager().SetUpDriver(new ChromeConfig());
63
- Console.WriteLine("ChromeDriverを取得終了");
64
-
65
- var chrome = new ChromeDriver();
66
- chrome.Navigate().GoToUrl("https://teratail.com/");
67
- }
68
- }
69
- }
70
- ```
71
- これで取れました。
72
-
73
- 今インストールされてるChromeに合わせる場合、
74
- ```C#
75
- using System;
76
- using System.Diagnostics;
77
- using System.Net.Http;
78
- using System.Threading.Tasks;
79
- using Microsoft.Win32;
80
- using OpenQA.Selenium.Chrome;
81
- using WebDriverManager;
82
- using WebDriverManager.DriverConfigs.Impl;
83
-
84
- namespace Questions227899
85
- {
86
- class Program
87
- {
88
- static async Task Main()
89
- {
90
- Console.WriteLine("ChromeDriverを取得中");
91
- var version = await GetChromeDriverVersionAsync();
92
- new DriverManager().SetUpDriver(new ChromeConfig(), version);
93
- Console.WriteLine("ChromeDriverを取得終了");
94
-
95
- var chrome = new ChromeDriver();
96
- chrome.Navigate().GoToUrl("https://teratail.com/");
97
-
98
-
99
- Task<string> GetChromeDriverVersionAsync()
100
- {
101
- var path = Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe", "", null);
102
- if(path == null)
103
- path = Registry.GetValue(@"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe", "", null);
104
- // インストールされているChromeのバージョン
105
- var v = FileVersionInfo.GetVersionInfo(path.ToString()).FileVersion;
106
-
107
- v = v.Substring(0, v.LastIndexOf("."));
108
- var url = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_" + v;
109
- // 対応するChromeDriverのバージョン
110
- return new HttpClient().GetStringAsync(url);
111
- }
112
- }
113
- }
114
- }
115
- ```
1
+ 2021/9/1 追記
2
+
3
+ 別質問で言及されてしまったので、現在の方法を書いておきます(すごく簡単になっています)
4
+ [C# - C# WebDriverManagerで、今インストールされてるEdgeのバージョンに合わせてEdgeDriverをセットアップする|teratail](https://teratail.com/questions/356826)
5
+
6
+ 回答当時は`WebDriverManager 2.7.0`でしたが、今は`2.11.3`とだいぶバージョンが上がっています。
7
+ [NuGet Gallery | WebDriverManager 2.11.3](https://www.nuget.org/packages/WebDriverManager/2.11.3)
8
+
9
+ GitHubにすべて書いてありますが、`SetUpDriver`で`VersionResolveStrategy.MatchingBrowser`オプションをつけるだけで終了です。
10
+ [rosolko/WebDriverManager.Net: Automatic Selenium Webdriver binaries management for .Net](https://github.com/rosolko/WebDriverManager.Net#automatic-way)
11
+
12
+ ```cs
13
+ using OpenQA.Selenium.Chrome;
14
+ using System;
15
+ using WebDriverManager;
16
+ using WebDriverManager.DriverConfigs.Impl;
17
+ using WebDriverManager.Helpers;
18
+
19
+ namespace Questions227899
20
+ {
21
+ class Program
22
+ {
23
+ static void Main()
24
+ {
25
+ Console.WriteLine("ChromeDriverを取得中");
26
+
27
+ // 最新版
28
+ //new DriverManager().SetUpDriver(new ChromeConfig());
29
+
30
+ // インストールされているバージョン
31
+ new DriverManager().SetUpDriver(new ChromeConfig(), VersionResolveStrategy.MatchingBrowser);
32
+
33
+ Console.WriteLine("ChromeDriverを取得終了");
34
+
35
+ var chrome = new ChromeDriver();
36
+ chrome.Navigate().GoToUrl("https://teratail.com/");
37
+ }
38
+ }
39
+ }
40
+ ```
41
+
42
+ ---
43
+
44
+ 以下古い内容
45
+
46
+ NuGetは`Selenium.WebDriver` `WebDriverManager`の2つだけの状態で、
47
+
48
+ Chromeが常に最新版であれば、
49
+ ```cs
50
+ using System;
51
+ using OpenQA.Selenium.Chrome;
52
+ using WebDriverManager;
53
+ using WebDriverManager.DriverConfigs.Impl;
54
+
55
+ namespace Questions227899
56
+ {
57
+ class Program
58
+ {
59
+ static void Main()
60
+ {
61
+ Console.WriteLine("ChromeDriverを取得中");
62
+ new DriverManager().SetUpDriver(new ChromeConfig());
63
+ Console.WriteLine("ChromeDriverを取得終了");
64
+
65
+ var chrome = new ChromeDriver();
66
+ chrome.Navigate().GoToUrl("https://teratail.com/");
67
+ }
68
+ }
69
+ }
70
+ ```
71
+ これで取れました。
72
+
73
+ 今インストールされてるChromeに合わせる場合、
74
+ ```cs
75
+ using System;
76
+ using System.Diagnostics;
77
+ using System.Net.Http;
78
+ using System.Threading.Tasks;
79
+ using Microsoft.Win32;
80
+ using OpenQA.Selenium.Chrome;
81
+ using WebDriverManager;
82
+ using WebDriverManager.DriverConfigs.Impl;
83
+
84
+ namespace Questions227899
85
+ {
86
+ class Program
87
+ {
88
+ static async Task Main()
89
+ {
90
+ Console.WriteLine("ChromeDriverを取得中");
91
+ var version = await GetChromeDriverVersionAsync();
92
+ new DriverManager().SetUpDriver(new ChromeConfig(), version);
93
+ Console.WriteLine("ChromeDriverを取得終了");
94
+
95
+ var chrome = new ChromeDriver();
96
+ chrome.Navigate().GoToUrl("https://teratail.com/");
97
+
98
+
99
+ Task<string> GetChromeDriverVersionAsync()
100
+ {
101
+ var path = Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe", "", null);
102
+ if(path == null)
103
+ path = Registry.GetValue(@"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe", "", null);
104
+ // インストールされているChromeのバージョン
105
+ var v = FileVersionInfo.GetVersionInfo(path.ToString()).FileVersion;
106
+
107
+ v = v.Substring(0, v.LastIndexOf("."));
108
+ var url = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_" + v;
109
+ // 対応するChromeDriverのバージョン
110
+ return new HttpClient().GetStringAsync(url);
111
+ }
112
+ }
113
+ }
114
+ }
115
+ ```
116
116
  こんな感じでしょうか(雑いです)

1

WebDriverManager 2.11.3 での方法

2021/09/01 08:44

投稿

TN8001
TN8001

スコア10180

answer CHANGED
@@ -1,3 +1,48 @@
1
+ 2021/9/1 追記
2
+
3
+ 別質問で言及されてしまったので、現在の方法を書いておきます(すごく簡単になっています)
4
+ [C# - C# WebDriverManagerで、今インストールされてるEdgeのバージョンに合わせてEdgeDriverをセットアップする|teratail](https://teratail.com/questions/356826)
5
+
6
+ 回答当時は`WebDriverManager 2.7.0`でしたが、今は`2.11.3`とだいぶバージョンが上がっています。
7
+ [NuGet Gallery | WebDriverManager 2.11.3](https://www.nuget.org/packages/WebDriverManager/2.11.3)
8
+
9
+ GitHubにすべて書いてありますが、`SetUpDriver`で`VersionResolveStrategy.MatchingBrowser`オプションをつけるだけで終了です。
10
+ [rosolko/WebDriverManager.Net: Automatic Selenium Webdriver binaries management for .Net](https://github.com/rosolko/WebDriverManager.Net#automatic-way)
11
+
12
+ ```C#
13
+ using OpenQA.Selenium.Chrome;
14
+ using System;
15
+ using WebDriverManager;
16
+ using WebDriverManager.DriverConfigs.Impl;
17
+ using WebDriverManager.Helpers;
18
+
19
+ namespace Questions227899
20
+ {
21
+ class Program
22
+ {
23
+ static void Main()
24
+ {
25
+ Console.WriteLine("ChromeDriverを取得中");
26
+
27
+ // 最新版
28
+ //new DriverManager().SetUpDriver(new ChromeConfig());
29
+
30
+ // インストールされているバージョン
31
+ new DriverManager().SetUpDriver(new ChromeConfig(), VersionResolveStrategy.MatchingBrowser);
32
+
33
+ Console.WriteLine("ChromeDriverを取得終了");
34
+
35
+ var chrome = new ChromeDriver();
36
+ chrome.Navigate().GoToUrl("https://teratail.com/");
37
+ }
38
+ }
39
+ }
40
+ ```
41
+
42
+ ---
43
+
44
+ 以下古い内容
45
+
1
46
  NuGetは`Selenium.WebDriver` `WebDriverManager`の2つだけの状態で、
2
47
 
3
48
  Chromeが常に最新版であれば、