Skip to content

Commit 9c0a7af

Browse files
author
John Luo
committed
Update API
1 parent 05991be commit 9c0a7af

File tree

1 file changed

+37
-14
lines changed

1 file changed

+37
-14
lines changed

src/Shared/E2ETesting/BrowserFixture.cs

Lines changed: 37 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@
1111
using System.Threading.Tasks;
1212
using OpenQA.Selenium;
1313
using OpenQA.Selenium.Chrome;
14+
using OpenQA.Selenium.Edge;
15+
using OpenQA.Selenium.IE;
1416
using OpenQA.Selenium.Remote;
17+
using OpenQA.Selenium.Safari;
1518
using Xunit;
1619
using Xunit.Abstractions;
1720

@@ -234,55 +237,75 @@ private string UserProfileDirectory(string context)
234237
name = $"{name} - {context}";
235238
}
236239

237-
var capabilities = new DesiredCapabilities();
240+
DriverOptions options;
241+
242+
switch (sauce.BrowserName.ToLower())
243+
{
244+
case "chrome":
245+
options = new ChromeOptions();
246+
break;
247+
case "safari":
248+
options = new SafariOptions();
249+
break;
250+
case "internet explorer":
251+
options = new InternetExplorerOptions();
252+
break;
253+
case "microsoftedge":
254+
options = new EdgeOptions();
255+
break;
256+
default:
257+
throw new InvalidOperationException($"Browser name {sauce.BrowserName} not recognized");
258+
}
238259

239260
// Required config
240-
capabilities.SetCapability("username", sauce.Username);
241-
capabilities.SetCapability("accessKey", sauce.AccessKey);
242-
capabilities.SetCapability("tunnelIdentifier", sauce.TunnelIdentifier);
243-
capabilities.SetCapability("name", name);
261+
options.AddAdditionalCapability("username", sauce.Username);
262+
options.AddAdditionalCapability("accessKey", sauce.AccessKey);
263+
options.AddAdditionalCapability("tunnelIdentifier", sauce.TunnelIdentifier);
264+
options.AddAdditionalCapability("name", name);
244265

245266
if (!string.IsNullOrEmpty(sauce.BrowserName))
246267
{
247-
capabilities.SetCapability("browserName", sauce.BrowserName);
268+
options.AddAdditionalCapability("browserName", sauce.BrowserName);
248269
}
249270

250271
if (!string.IsNullOrEmpty(sauce.PlatformVersion))
251272
{
252-
capabilities.SetCapability("platformName", sauce.PlatformName);
253-
capabilities.SetCapability("platformVersion", sauce.PlatformVersion);
273+
options.PlatformName = sauce.PlatformName;
274+
options.AddAdditionalCapability("platformVersion", sauce.PlatformVersion);
254275
}
255276
else
256277
{
257278
// In some cases (like macOS), SauceLabs expects us to set "platform" instead of "platformName".
258-
capabilities.SetCapability("platform", sauce.PlatformName);
279+
options.AddAdditionalCapability("platform", sauce.PlatformName);
259280
}
260281

261282
if (!string.IsNullOrEmpty(sauce.BrowserVersion))
262283
{
263-
capabilities.SetCapability("browserVersion", sauce.BrowserVersion);
284+
options.BrowserVersion = sauce.BrowserVersion;
264285
}
265286

266287
if (!string.IsNullOrEmpty(sauce.DeviceName))
267288
{
268-
capabilities.SetCapability("deviceName", sauce.DeviceName);
289+
options.AddAdditionalCapability("deviceName", sauce.DeviceName);
269290
}
270291

271292
if (!string.IsNullOrEmpty(sauce.DeviceOrientation))
272293
{
273-
capabilities.SetCapability("deviceOrientation", sauce.DeviceOrientation);
294+
options.AddAdditionalCapability("deviceOrientation", sauce.DeviceOrientation);
274295
}
275296

276297
if (!string.IsNullOrEmpty(sauce.AppiumVersion))
277298
{
278-
capabilities.SetCapability("appiumVersion", sauce.AppiumVersion);
299+
options.AddAdditionalCapability("appiumVersion", sauce.AppiumVersion);
279300
}
280301

281302
if (!string.IsNullOrEmpty(sauce.SeleniumVersion))
282303
{
283-
capabilities.SetCapability("seleniumVersion", sauce.SeleniumVersion);
304+
options.AddAdditionalCapability("seleniumVersion", sauce.SeleniumVersion);
284305
}
285306

307+
var capabilities = options.ToCapabilities();
308+
286309
await SauceConnectServer.StartAsync(output);
287310

288311
var attempt = 0;

0 commit comments

Comments
 (0)