Skip to content

Commit af32719

Browse files
committed
some updates to make the tests work
Update to enable HWA and make sure the same code works in Edge, Chrome, and HWA
1 parent 7612752 commit af32719

File tree

6 files changed

+64
-39
lines changed

6 files changed

+64
-39
lines changed

BrowserEfficiencyTest/Arguments.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ namespace BrowserEfficiencyTest
3838
/// </summary>
3939
internal class Arguments
4040
{
41-
private static readonly List<string> s_SupportedBrowsers = new List<string> { "chrome", "edge", "firefox", "opera" };
41+
private static readonly List<string> s_SupportedBrowsers = new List<string> { "chrome", "edge", "firefox", "opera", "hwa" };
4242

4343
private Dictionary<string, Scenario> _possibleScenarios;
4444
private List<Scenario> _scenarios;

BrowserEfficiencyTest/BrowserEfficiencyTest.csproj

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,8 @@
5454
<Reference Include="System.Data" />
5555
<Reference Include="System.Net.Http" />
5656
<Reference Include="System.Xml" />
57-
<Reference Include="WebDriver, Version=2.53.1.0, Culture=neutral, processorArchitecture=MSIL">
58-
<HintPath>..\packages\Selenium.WebDriver.2.53.1\lib\net40\WebDriver.dll</HintPath>
59-
<Private>True</Private>
60-
</Reference>
61-
<Reference Include="WebDriver.Support, Version=2.53.1.0, Culture=neutral, processorArchitecture=MSIL">
62-
<HintPath>..\packages\Selenium.Support.2.53.1\lib\net40\WebDriver.Support.dll</HintPath>
57+
<Reference Include="WebDriver, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL">
58+
<HintPath>..\packages\Selenium.WebDriver.3.0.0-beta3\lib\net40\WebDriver.dll</HintPath>
6359
<Private>True</Private>
6460
</Reference>
6561
</ItemGroup>

BrowserEfficiencyTest/RemoteWebDriverExtension.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
//
2626
//--------------------------------------------------------------
2727

28+
using System.Collections.Generic;
2829
using OpenQA.Selenium;
2930
using OpenQA.Selenium.Chrome;
3031
using OpenQA.Selenium.Edge;
@@ -145,10 +146,18 @@ public static RemoteWebDriver CreateDriverAndMaximize(string browser, string bro
145146
}
146147

147148
driver = new ChromeDriver(option);
149+
break;
150+
case "hwa":
151+
152+
var service = EdgeDriverService.CreateDefaultService();
153+
service.Package = "642da805-a44f-4049-aa37-a8572feb22cb_cf1nqpe36y9ty!SlackApp";
154+
driver = new EdgeDriver(service);
155+
148156
break;
149157
default:
150158
// Warning: this blows away all Microsoft Edge data, including bookmarks, cookies, passwords, etc
151159
EdgeDriverService svc = EdgeDriverService.CreateDefaultService();
160+
152161
driver = new EdgeDriver(svc);
153162
HttpClient client = new HttpClient();
154163
client.DeleteAsync($"http://localhost:{svc.Port}/session/{driver.SessionId}/ms/history").Wait();

BrowserEfficiencyTest/Scenarios/Slack.cs

Lines changed: 49 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,16 @@
2525
//
2626
//--------------------------------------------------------------
2727

28+
using System;
2829
using OpenQA.Selenium;
2930
using OpenQA.Selenium.Remote;
3031
using System.Collections.Generic;
3132
using System.Threading;
3233

3334
namespace BrowserEfficiencyTest
3435
{
36+
// Sample command line params:
37+
// -browser chrome -s slack -tc c:\etls -ms energy -i 5
3538
internal class Slack : Scenario
3639
{
3740
public Slack()
@@ -42,44 +45,61 @@ public Slack()
4245

4346
public override void Run(RemoteWebDriver driver, string browser, List<UserInfo> logins)
4447
{
45-
string userName = string.Empty, passWord = string.Empty;
46-
driver.Navigate().GoToUrl("http://mswebeco.slack.com/");
47-
Thread.Sleep(5000);
48-
49-
// login to slack
50-
foreach (var item in logins)
48+
if (browser != "hwa")
5149
{
52-
if (item.Domain == "slack.com")
50+
string userName = string.Empty, passWord = string.Empty;
51+
52+
driver.Navigate().GoToUrl("http://mswebeco.slack.com/");
53+
Thread.Sleep(5000);
54+
55+
try
5356
{
54-
userName = item.UserName;
55-
passWord = item.PassWord;
56-
break;
57+
driver.FindElementById("direct_messages_header").Click();
5758
}
58-
}
59+
catch (Exception)
60+
{
61+
// login to slack
62+
foreach (var item in logins)
63+
{
64+
if (item.Domain == "slack.com")
65+
{
66+
userName = item.UserName;
67+
passWord = item.PassWord;
68+
break;
69+
}
70+
}
5971

60-
var userElem = driver.FindElement(By.Id("email"));
61-
var passElem = driver.FindElement(By.Id("password"));
72+
var userElem = driver.FindElement(By.Id("email"));
73+
var passElem = driver.FindElement(By.Id("password"));
6274

63-
userElem.Clear();
64-
userElem.SendKeys(userName);
65-
Thread.Sleep(500);
75+
userElem.Clear();
76+
userElem.SendKeys(userName);
77+
Thread.Sleep(500);
6678

67-
passElem.Clear();
68-
passElem.SendKeys(passWord);
69-
Thread.Sleep(500);
79+
passElem.Clear();
80+
passElem.SendKeys(passWord);
81+
Thread.Sleep(500);
7082

71-
// hack around bug in WebDriver:
72-
// driver.FindElement(By.Id("signin_btn")).Click();
73-
passElem.SendKeys(Keys.Enter);
74-
Thread.Sleep(10000);
83+
//// hack around bug in WebDriver:
84+
//driver.FindElement(By.Id("signin_btn")).Click();
7585

76-
for (var i = 0; i < 11; i++)
86+
passElem.SendKeys(Keys.Enter);
87+
Thread.Sleep(5000);
88+
}
89+
}
90+
Thread.Sleep(10000);
91+
for (var i = 0; i < 10; i++)
7792
{
78-
// View some channels
79-
driver.Navigate().GoToUrl("https://mswebeco.slack.com/messages/msedgedev/");
80-
Thread.Sleep(5000);
81-
driver.Navigate().GoToUrl("https://mswebeco.slack.com/messages/random/");
82-
Thread.Sleep(5000);
93+
// simulate some scrolling. every other time we will
94+
// go down
95+
// but we will also go up (so, sometimes up 2x, sometimes down then up)
96+
var scrollElem = driver.FindElementById("message-input");
97+
scrollElem.SendKeys(i%2 == 0 ? Keys.PageUp : Keys.PageDown);
98+
99+
Thread.Sleep(1000);
100+
scrollElem.SendKeys(Keys.PageUp);
101+
102+
Thread.Sleep(1000);
83103
}
84104
}
85105
}

BrowserEfficiencyTest/config.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
[
23
{
34
"Domain": "<matching domain>",
@@ -7,7 +8,7 @@
78
{
89
"Domain": "slack.com",
910
"UserName": "iecompat@gmail.com",
10-
"Password": "EdgeRock10!"
11+
"Password": "[INSERTPASSWORD]"
1112
}
1213

1314
]

BrowserEfficiencyTest/packages.config

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="Newtonsoft.Json" version="8.0.3" targetFramework="net452" />
4-
<package id="Selenium.Support" version="2.53.1" targetFramework="net46" />
5-
<package id="Selenium.WebDriver" version="2.53.1" targetFramework="net46" />
4+
<package id="Selenium.WebDriver" version="3.0.0-beta3" targetFramework="net46" />
65
</packages>

0 commit comments

Comments
 (0)