Skip to content

Commit f0f09c7

Browse files
authored
Add PageLoadStrategy to IDriverSettings (#182)
1 parent 6acd182 commit f0f09c7

File tree

8 files changed

+34
-16
lines changed

8 files changed

+34
-16
lines changed

Aquality.Selenium/src/Aquality.Selenium/Configurations/WebDriverSettings/ChromeSettings.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public override DriverOptions DriverOptions
3030
SetChromePrefs(options);
3131
SetCapabilities(options, (name, value) => options.AddAdditionalCapability(name, value, isGlobalCapability: true));
3232
SetChromeArguments(options);
33+
SetPageLoadStratergy(options);
3334
return options;
3435
}
3536
}

Aquality.Selenium/src/Aquality.Selenium/Configurations/WebDriverSettings/DriverSettings.cs

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,27 +24,15 @@ protected DriverSettings(ISettingsFile settingsFile)
2424
SettingsFile = settingsFile;
2525
}
2626

27-
private string DriverSettingsPath => $".driverSettings.{BrowserName.ToString().ToLowerInvariant()}";
28-
29-
protected IDictionary<string, object> BrowserCapabilities => SettingsFile.GetValueOrNew<Dictionary<string, object>>($"{DriverSettingsPath}.capabilities");
30-
31-
protected IDictionary<string, object> BrowserOptions => SettingsFile.GetValueOrNew<Dictionary<string, object>>($"{DriverSettingsPath}.options");
32-
33-
protected IReadOnlyList<string> BrowserStartArguments => SettingsFile.GetValueListOrEmpty<string>($"{DriverSettingsPath}.startArguments");
34-
3527
protected ISettingsFile SettingsFile { get; }
3628

37-
protected abstract BrowserName BrowserName { get; }
38-
39-
protected virtual IDictionary<string, Action<DriverOptions, object>> KnownCapabilitySetters => new Dictionary<string, Action<DriverOptions, object>>();
29+
public string WebDriverVersion => SettingsFile.GetValueOrDefault($"{DriverSettingsPath}.webDriverVersion", "Latest");
4030

41-
public abstract string DownloadDirCapabilityKey { get; }
31+
public Architecture SystemArchitecture => SettingsFile.GetValueOrDefault($"{DriverSettingsPath}.systemArchitecture", Architecture.Auto).ToEnum<Architecture>();
4232

4333
public abstract DriverOptions DriverOptions { get; }
4434

45-
public string WebDriverVersion => SettingsFile.GetValueOrDefault($"{DriverSettingsPath}.webDriverVersion", defaultValue: "Latest");
46-
47-
public Architecture SystemArchitecture => SettingsFile.GetValueOrDefault($"{DriverSettingsPath}.systemArchitecture", "Auto").ToEnum<Architecture>();
35+
public PageLoadStrategy PageLoadStrategy => SettingsFile.GetValueOrDefault($"{DriverSettingsPath}.pageLoadStrategy", PageLoadStrategy.Normal).ToEnum<PageLoadStrategy>();
4836

4937
public virtual string DownloadDir
5038
{
@@ -60,6 +48,25 @@ public virtual string DownloadDir
6048
}
6149
}
6250

51+
public abstract string DownloadDirCapabilityKey { get; }
52+
53+
protected IDictionary<string, object> BrowserCapabilities => SettingsFile.GetValueOrNew<Dictionary<string, object>>($"{DriverSettingsPath}.capabilities");
54+
55+
protected IDictionary<string, object> BrowserOptions => SettingsFile.GetValueOrNew<Dictionary<string, object>>($"{DriverSettingsPath}.options");
56+
57+
protected IReadOnlyList<string> BrowserStartArguments => SettingsFile.GetValueListOrEmpty<string>($"{DriverSettingsPath}.startArguments");
58+
59+
private string DriverSettingsPath => $".driverSettings.{BrowserName.ToString().ToLowerInvariant()}";
60+
61+
protected abstract BrowserName BrowserName { get; }
62+
63+
protected virtual IDictionary<string, Action<DriverOptions, object>> KnownCapabilitySetters => new Dictionary<string, Action<DriverOptions, object>>();
64+
65+
protected void SetPageLoadStratergy(DriverOptions options)
66+
{
67+
options.PageLoadStrategy = PageLoadStrategy;
68+
}
69+
6370
protected void SetCapabilities(DriverOptions options, Action<string, object> addCapabilityMethod = null)
6471
{
6572
foreach (var capability in BrowserCapabilities)

Aquality.Selenium/src/Aquality.Selenium/Configurations/WebDriverSettings/EdgeSettings.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public override DriverOptions DriverOptions
2828
var options = new EdgeOptions();
2929
SetCapabilities(options);
3030
SetOptionsByPropertyNames(options);
31+
SetPageLoadStratergy(options);
3132
return options;
3233
}
3334
}

Aquality.Selenium/src/Aquality.Selenium/Configurations/WebDriverSettings/FirefoxSettings.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public override DriverOptions DriverOptions
4040
SetCapabilities(options, (name, value) => options.AddAdditionalCapability(name, value, isGlobalCapability: true));
4141
SetFirefoxPrefs(options);
4242
SetFirefoxArguments(options);
43+
SetPageLoadStratergy(options);
4344
return options;
4445
}
4546
}

Aquality.Selenium/src/Aquality.Selenium/Configurations/WebDriverSettings/IDriverSettings.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ public interface IDriverSettings
2323
/// </summary>
2424
DriverOptions DriverOptions { get; }
2525

26+
/// <summary>
27+
/// WebDriver page load strategy.
28+
/// </summary>
29+
PageLoadStrategy PageLoadStrategy { get; }
30+
2631
/// <summary>
2732
/// Gets download directory for web driver.
2833
/// </summary>

Aquality.Selenium/src/Aquality.Selenium/Configurations/WebDriverSettings/InternetExplorerSettings.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public override DriverOptions DriverOptions
4141
var options = new InternetExplorerOptions();
4242
SetCapabilities(options);
4343
SetOptionsByPropertyNames(options);
44+
SetPageLoadStratergy(options);
4445
options.BrowserCommandLineArguments = string.Join(" ", BrowserStartArguments);
4546
return options;
4647
}

Aquality.Selenium/src/Aquality.Selenium/Configurations/WebDriverSettings/SafariSettings.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public override DriverOptions DriverOptions
2727
var options = new SafariOptions();
2828
SetCapabilities(options);
2929
SetOptionsByPropertyNames(options);
30+
SetPageLoadStratergy(options);
3031
return options;
3132
}
3233
}

Aquality.Selenium/src/Aquality.Selenium/Resources/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
"download.prompt_for_download": "false",
1919
"download.default_directory": "//home//selenium//downloads"
2020
},
21-
"startArguments": []
21+
"startArguments": [],
22+
"pageLoadStrategy": "Normal"
2223
},
2324
"firefox": {
2425
"webDriverVersion": "Latest",

0 commit comments

Comments
 (0)