From b5a214b927b1b38de38fcb6d00923e4aa061404f Mon Sep 17 00:00:00 2001 From: kamal-kaur04 <38219887+kamal-kaur04@users.noreply.github.com> Date: Fri, 4 Aug 2023 11:27:06 +0530 Subject: [PATCH 1/7] init: csharp sdk sample --- .gitignore | 1 + CODEOWNERS | 2 +- .../.config/dotnet-tools.json | 12 ++ CSharp-Playwright-BrowserStack/App.config | 64 ----------- .../BrowserStackNUnitTest.cs | 103 ------------------ .../CSharp-Playwright-BrowserStack.csproj | 13 +-- CSharp-Playwright-BrowserStack/LocalTest.cs | 25 ----- .../ParallelTest.cs | 15 --- .../SampleLocalTest.cs | 24 ++++ .../{SingleTest.cs => SampleTest.cs} | 21 ++-- .../browserstack.err | 1 + .../browserstack.yml | 65 +++++++++++ .../packages.config | 2 - README.md | 68 +++++++++++- 14 files changed, 184 insertions(+), 232 deletions(-) create mode 100644 CSharp-Playwright-BrowserStack/.config/dotnet-tools.json delete mode 100644 CSharp-Playwright-BrowserStack/App.config delete mode 100644 CSharp-Playwright-BrowserStack/BrowserStackNUnitTest.cs delete mode 100644 CSharp-Playwright-BrowserStack/LocalTest.cs delete mode 100644 CSharp-Playwright-BrowserStack/ParallelTest.cs create mode 100644 CSharp-Playwright-BrowserStack/SampleLocalTest.cs rename CSharp-Playwright-BrowserStack/{SingleTest.cs => SampleTest.cs} (62%) create mode 100644 CSharp-Playwright-BrowserStack/browserstack.err create mode 100644 CSharp-Playwright-BrowserStack/browserstack.yml diff --git a/.gitignore b/.gitignore index 4818878..22ca79e 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ bin obj .vs .DS_Store +log diff --git a/CODEOWNERS b/CODEOWNERS index 444c87b..d9c1414 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1 +1 @@ -* @browserstack/afd-dev +* @browserstack/asi-dev diff --git a/CSharp-Playwright-BrowserStack/.config/dotnet-tools.json b/CSharp-Playwright-BrowserStack/.config/dotnet-tools.json new file mode 100644 index 0000000..2e8d861 --- /dev/null +++ b/CSharp-Playwright-BrowserStack/.config/dotnet-tools.json @@ -0,0 +1,12 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "browserstack-sdk": { + "version": "1.3.2", + "commands": [ + "browserstack-sdk" + ] + } + } +} \ No newline at end of file diff --git a/CSharp-Playwright-BrowserStack/App.config b/CSharp-Playwright-BrowserStack/App.config deleted file mode 100644 index 1aec018..0000000 --- a/CSharp-Playwright-BrowserStack/App.config +++ /dev/null @@ -1,64 +0,0 @@ - - - - -
-
-
- - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CSharp-Playwright-BrowserStack/BrowserStackNUnitTest.cs b/CSharp-Playwright-BrowserStack/BrowserStackNUnitTest.cs deleted file mode 100644 index 6c6cf8c..0000000 --- a/CSharp-Playwright-BrowserStack/BrowserStackNUnitTest.cs +++ /dev/null @@ -1,103 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.Specialized; -using System.Configuration; - -using Microsoft.Playwright; -using Newtonsoft.Json; -using NUnit.Framework; -using BrowserStack; - -namespace CSharpPlaywrightBrowserStack -{ - [TestFixture] - public class BrowserStackNUnitTest - { - protected IBrowser browser; - protected IPage page; - protected string profile; - protected string environment; - private Local browserStackLocal; - - public BrowserStackNUnitTest(string profile, string environment) - { - this.profile = profile; - this.environment = environment; - } - - [SetUp] - public async Task Init() - { - NameValueCollection? caps = - ConfigurationManager.GetSection("capabilities/" + profile) as NameValueCollection; - NameValueCollection? settings = - ConfigurationManager.GetSection("environments/" + environment) - as NameValueCollection; - - NameValueCollection cc = (NameValueCollection) ConfigurationManager.AppSettings; - - Console.WriteLine("KAMAL " + settings + "-" + caps + "-" + profile + "-" + environment - + cc["user"]); - - Dictionary browserstackOptions = new Dictionary - { - { "browserName", settings["browser"] } - }; - - foreach (string key in caps.AllKeys) - { - browserstackOptions.Add(key, caps[key]); - } - - String username = Environment.GetEnvironmentVariable("BROWSERSTACK_USERNAME"); - if (username == null) - { - username = ConfigurationManager.AppSettings.Get("user"); - } - - String accesskey = Environment.GetEnvironmentVariable("BROWSERSTACK_ACCESS_KEY"); - if (accesskey == null) - { - accesskey = ConfigurationManager.AppSettings.Get("key"); - } - - browserstackOptions.Add("userName", username); - browserstackOptions.Add("accessKey", accesskey); - - if (caps.Get("local").ToString() == "true") - { - browserStackLocal = new Local(); - List> bsLocalArgs = new List< - KeyValuePair - >() - { - new KeyValuePair("key", accesskey) - }; - browserStackLocal.start(bsLocalArgs); - } - string capsJson = JsonConvert.SerializeObject(browserstackOptions); - string cdpUrl = "wss://cdp.browserstack.com/playwright?caps=" + Uri.EscapeDataString(capsJson); - - var playwright = await Playwright.CreateAsync(); - browser = await playwright.Chromium.ConnectAsync(cdpUrl); - page = await browser.NewPageAsync(); - } - - [TearDown] - public async Task Cleanup() - { - if (page != null) - { - page.CloseAsync(); - } - if (browser != null) - { - browser.CloseAsync(); - } - if (browserStackLocal != null) - { - browserStackLocal.stop(); - } - } - } -} diff --git a/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.csproj b/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.csproj index 0758da6..8b29ee6 100644 --- a/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.csproj +++ b/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.csproj @@ -9,9 +9,7 @@ false - - @@ -20,14 +18,7 @@ + + - - - Designer - - - - - - \ No newline at end of file diff --git a/CSharp-Playwright-BrowserStack/LocalTest.cs b/CSharp-Playwright-BrowserStack/LocalTest.cs deleted file mode 100644 index 5201baf..0000000 --- a/CSharp-Playwright-BrowserStack/LocalTest.cs +++ /dev/null @@ -1,25 +0,0 @@ -using NUnit.Framework; -using Microsoft.Playwright; -using System.Text.RegularExpressions; - -namespace CSharpPlaywrightBrowserStack -{ - [TestFixture("local", "chrome")] - [Category("sample-local-test")] - public class LocalTest : BrowserStackNUnitTest - { - public LocalTest(string profile, string environment) : base(profile, environment) { } - - [Test] - public async Task HealthCheck() - { - // Navigate to the base url - await page.GotoAsync("http://bs-local.com:45454/"); - - // Verify if BrowserStackLocal running - var title = await page.TitleAsync(); - StringAssert.Contains("BrowserStack Local", title); - } - } -} - diff --git a/CSharp-Playwright-BrowserStack/ParallelTest.cs b/CSharp-Playwright-BrowserStack/ParallelTest.cs deleted file mode 100644 index 73b39d7..0000000 --- a/CSharp-Playwright-BrowserStack/ParallelTest.cs +++ /dev/null @@ -1,15 +0,0 @@ -using NUnit.Framework; - -namespace CSharpPlaywrightBrowserStack -{ - [TestFixture("parallel", "chrome")] - [TestFixture("parallel", "firefox")] - [TestFixture("parallel", "safari")] - [TestFixture("parallel", "edge")] - [Parallelizable(ParallelScope.Fixtures)] - [Category("sample-parallel-test")] - public class ParallelTest : SingleTest - { - public ParallelTest(string profile, string environment) : base(profile, environment) { } - } -} diff --git a/CSharp-Playwright-BrowserStack/SampleLocalTest.cs b/CSharp-Playwright-BrowserStack/SampleLocalTest.cs new file mode 100644 index 0000000..d0996ae --- /dev/null +++ b/CSharp-Playwright-BrowserStack/SampleLocalTest.cs @@ -0,0 +1,24 @@ +using Microsoft.Playwright.NUnit; +using NUnit.Framework; + +namespace CSharpPlaywrightBrowserStack +{ + [TestFixture] + [Category("sample-local-test")] + public class SampleLocalTest : PageTest + { + public SampleLocalTest() : base() { } + + [Test] + public async Task BStackHealthCheck() + { + // Navigate to the base url + await Page.GotoAsync("http://bs-local.com:45454/"); + + // Verify if BrowserStackLocal running + var title = await Page.TitleAsync(); + StringAssert.Contains("BrowserStack Local", title); + } + } +} + diff --git a/CSharp-Playwright-BrowserStack/SingleTest.cs b/CSharp-Playwright-BrowserStack/SampleTest.cs similarity index 62% rename from CSharp-Playwright-BrowserStack/SingleTest.cs rename to CSharp-Playwright-BrowserStack/SampleTest.cs index deb4d7c..98973dc 100644 --- a/CSharp-Playwright-BrowserStack/SingleTest.cs +++ b/CSharp-Playwright-BrowserStack/SampleTest.cs @@ -1,43 +1,44 @@ using NUnit.Framework; using Microsoft.Playwright; +using Microsoft.Playwright.NUnit; namespace CSharpPlaywrightBrowserStack { - [TestFixture("single", "chrome")] + [TestFixture] [Category("sample-test")] - public class SingleTest : BrowserStackNUnitTest + public class SampleTest : PageTest { - public SingleTest(string profile, string environment) : base(profile, environment) { } + public SampleTest() : base() { } [Test] public async Task SearchBstackDemo() { //Navigate to the bstackdemo url - _ = await page.GotoAsync("https://bstackdemo.com/"); + _ = await Page.GotoAsync("https://bstackdemo.com/"); // Add the first item to cart - await page.Locator("[id=\"\\31 \"]").GetByText("Add to Cart").ClickAsync(); - IReadOnlyList phone = await page.Locator("[id=\"\\31 \"]").Locator(".shelf-item__title").AllInnerTextsAsync(); + await Page.Locator("[id=\"\\31 \"]").GetByText("Add to Cart").ClickAsync(); + IReadOnlyList phone = await Page.Locator("[id=\"\\31 \"]").Locator(".shelf-item__title").AllInnerTextsAsync(); Console.WriteLine("Phone =>" + phone[0]); // Get the items from Cart - IReadOnlyList quantity = await page.Locator(".bag__quantity").AllInnerTextsAsync(); + IReadOnlyList quantity = await Page.Locator(".bag__quantity").AllInnerTextsAsync(); Console.WriteLine("Bag quantity =>" + quantity[0]); // Verify if there is a shopping cart - StringAssert.Contains("1", await page.Locator(".bag__quantity").InnerTextAsync()); + StringAssert.Contains("1", await Page.Locator(".bag__quantity").InnerTextAsync()); //Get the handle for cart item - ILocator cartItem = page.Locator(".shelf-item__details").Locator(".title"); + ILocator cartItem = Page.Locator(".shelf-item__details").Locator(".title"); // Verify if the cart has the right item StringAssert.Contains(await cartItem.InnerTextAsync(), string.Join(" ", phone)); IReadOnlyList cartItemText = await cartItem.AllInnerTextsAsync(); Console.WriteLine("Cart item => " + cartItemText[0]); - Assert.Equals(cartItemText[0], phone[0]); + Assert.That(phone[0], Is.EqualTo(cartItemText[0])); } } } diff --git a/CSharp-Playwright-BrowserStack/browserstack.err b/CSharp-Playwright-BrowserStack/browserstack.err new file mode 100644 index 0000000..a6e1414 --- /dev/null +++ b/CSharp-Playwright-BrowserStack/browserstack.err @@ -0,0 +1 @@ +[object Object] \ No newline at end of file diff --git a/CSharp-Playwright-BrowserStack/browserstack.yml b/CSharp-Playwright-BrowserStack/browserstack.yml new file mode 100644 index 0000000..aaa1611 --- /dev/null +++ b/CSharp-Playwright-BrowserStack/browserstack.yml @@ -0,0 +1,65 @@ +# ============================= +# Set BrowserStack Credentials +# ============================= +# Add your BrowserStack userName and accessKey here or set BROWSERSTACK_USERNAME and +# BROWSERSTACK_ACCESS_KEY as env variables +userName: YOUR_USERNAME +accessKey: YOUR_ACCESS_KEY + +# ====================== +# BrowserStack Reporting +# ====================== +# The following capabilities are used to set up reporting on BrowserStack: +# Set 'projectName' to the name of your project. Example, Marketing Website +projectName: BrowserStack Samples +# Set `buildName` as the name of the job / testsuite being run +buildName: browserstack build +# `buildIdentifier` is a unique id to differentiate every execution that gets appended to +# buildName. Choose your buildIdentifier format from the available expressions: +# ${BUILD_NUMBER} (Default): Generates an incremental counter with every execution +# ${DATE_TIME}: Generates a Timestamp with every execution. Eg. 05-Nov-19:30 +# Read more about buildIdentifiers here -> https://www.browserstack.com/docs/automate/selenium/organize-tests +buildIdentifier: '#${BUILD_NUMBER}' # Supports strings along with either/both ${expression} + +# ======================================= +# Platforms (Browsers / Devices to test) +# ======================================= +# Platforms object contains all the browser / device combinations you want to test on. +# Entire list available here -> (https://www.browserstack.com/list-of-browsers-and-platforms/automate) +platforms: + - os: Windows + osVersion: 11 + browserName: chrome + browserVersion: latest + - os: OS X + osVersion: Ventura + browserName: playwright-webkit + browserVersion: latest + - os: Windows + osVersion: 11 + browserName: playwright-firefox + browserVersion: latest + +# ========================================== +# BrowserStack Local +# (For localhost, staging/private websites) +# ========================================== +# Set browserStackLocal to true if your website under test is not accessible publicly over the internet +# Learn more about how BrowserStack Local works here -> https://www.browserstack.com/docs/automate/selenium/local-testing-introduction +browserstackLocal: true # (Default false) +# browserStackLocalOptions: +# Options to be passed to BrowserStack local in-case of advanced configurations + # localIdentifier: # (Default: null) Needed if you need to run multiple instances of local. + # forceLocal: true # (Default: false) Set to true if you need to resolve all your traffic via BrowserStack Local tunnel. + # Entire list of arguments available here -> https://www.browserstack.com/docs/automate/selenium/manage-incoming-connections + +source: csharp-playwright-browserstack:sample-sdk:v1.0 + +# =================== +# Debugging features +# =================== +debug: false # # Set to true if you need screenshots for every selenium command ran +networkLogs: false # Set to true to enable HAR logs capturing +consoleLogs: errors # Remote browser's console debug levels to be printed (Default: errors) +# Available options are `disable`, `errors`, `warnings`, `info`, `verbose` (Default: errors) + diff --git a/CSharp-Playwright-BrowserStack/packages.config b/CSharp-Playwright-BrowserStack/packages.config index 15fe6f2..49c11c3 100644 --- a/CSharp-Playwright-BrowserStack/packages.config +++ b/CSharp-Playwright-BrowserStack/packages.config @@ -1,7 +1,5 @@  - - diff --git a/README.md b/README.md index d381fe3..5a2cf97 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,68 @@ # csharp-playwright-browserstack -Creating a sample repo for different Playwright languages and runners +Creating a sample repo for CSharp Playwright + +This sample elaborates the [NUnit](http://www.nunit.org/) Integration with BrowserStack. + +![BrowserStack Logo](https://d98b8t1nnulk5.cloudfront.net/production/images/layout/logo-header.png?1469004780) + + + +## Run Sample Build +* Clone the repo +* Open the solution `CSharp-Playwright-BrowserStack.sln` in Visual Studio +* Build the solution +* Update `browserstack.yml` file with your [BrowserStack Username and Access Key](https://www.browserstack.com/accounts/settings) +### Running your tests from CLI +* To run the test suite having cross-platform with parallelization, dotnet test --filter "Category=sample-test" +* To run local tests, dotnet test --filter "Category=sample-local-test" +### Running your tests from Test Explorer +- To run a parallel tests, run test with fixture `sample-test` +```sh +dotnet test --filter "Category=sample-test" +``` +- To run local tests, run test with fixture `sample-local-test` +```sh +dotnet test --filter "Category=sample-local-test" +``` + + Understand how many parallel sessions you need by using our [Parallel Test Calculator](https://www.browserstack.com/automate/parallel-calculator?ref=github) + +## Integrate your test suite + +This repository uses the BrowserStack SDK to run tests on BrowserStack. Follow the steps below to install the SDK in your test suite and run tests on BrowserStack: + +* Create sample browserstack.yml file with the browserstack related capabilities with your [BrowserStack Username and Access Key](https://www.browserstack.com/accounts/settings) and place it in your root folder. +* Add nuget library BrowserStack.TestAdapter +```sh +dotnet add BrowserStack.TestAdapter +``` +* Build project `dotnet build` + +## Notes +* You can view your test results on the [BrowserStack automate dashboard](https://www.browserstack.com/automate) +* To test on a different set of browsers, check out our [platform configurator](https://www.browserstack.com/automate/c-sharp#setting-os-and-browser) +* You can export the environment variables for the Username and Access Key of your BrowserStack account + + * For Unix-like or Mac machines: + ``` + export BROWSERSTACK_USERNAME= && + export BROWSERSTACK_ACCESS_KEY= + ``` + + * For Windows Cmd: + ``` + set BROWSERSTACK_USERNAME= + set BROWSERSTACK_ACCESS_KEY= + ``` + + * For Windows Powershell: + ``` + $env:BROWSERSTACK_USERNAME= + $env:BROWSERSTACK_ACCESS_KEY= + ``` + +## Additional Resources +* [Documentation for writing automate test scripts in C#](https://www.browserstack.com/automate/c-sharp) +* [Customizing your tests on BrowserStack](https://www.browserstack.com/automate/capabilities) +* [Browsers & mobile devices for selenium testing on BrowserStack](https://www.browserstack.com/list-of-browsers-and-platforms?product=automate) +* [Using REST API to access information about your tests via the command-line interface](https://www.browserstack.com/automate/rest-api) From b7fdfe82bf07177e053e54beb22e786dc894cdcf Mon Sep 17 00:00:00 2001 From: kamal-kaur04 <38219887+kamal-kaur04@users.noreply.github.com> Date: Fri, 4 Aug 2023 11:40:27 +0530 Subject: [PATCH 2/7] chore: new lines --- CODEOWNERS | 4 +++- CSharp-Playwright-BrowserStack/.config/dotnet-tools.json | 2 +- .../CSharp-Playwright-BrowserStack.csproj | 2 +- CSharp-Playwright-BrowserStack/browserstack.err | 1 - CSharp-Playwright-BrowserStack/packages.config | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) delete mode 100644 CSharp-Playwright-BrowserStack/browserstack.err diff --git a/CODEOWNERS b/CODEOWNERS index d9c1414..09a587d 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1 +1,3 @@ -* @browserstack/asi-dev +.github/* @browserstack/asi-devs + +* @browserstack/automate-public-repos diff --git a/CSharp-Playwright-BrowserStack/.config/dotnet-tools.json b/CSharp-Playwright-BrowserStack/.config/dotnet-tools.json index 2e8d861..898c74e 100644 --- a/CSharp-Playwright-BrowserStack/.config/dotnet-tools.json +++ b/CSharp-Playwright-BrowserStack/.config/dotnet-tools.json @@ -9,4 +9,4 @@ ] } } -} \ No newline at end of file +} diff --git a/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.csproj b/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.csproj index 8b29ee6..a6148e6 100644 --- a/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.csproj +++ b/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.csproj @@ -21,4 +21,4 @@ - \ No newline at end of file + diff --git a/CSharp-Playwright-BrowserStack/browserstack.err b/CSharp-Playwright-BrowserStack/browserstack.err deleted file mode 100644 index a6e1414..0000000 --- a/CSharp-Playwright-BrowserStack/browserstack.err +++ /dev/null @@ -1 +0,0 @@ -[object Object] \ No newline at end of file diff --git a/CSharp-Playwright-BrowserStack/packages.config b/CSharp-Playwright-BrowserStack/packages.config index 49c11c3..aa9c106 100644 --- a/CSharp-Playwright-BrowserStack/packages.config +++ b/CSharp-Playwright-BrowserStack/packages.config @@ -3,4 +3,4 @@ - \ No newline at end of file + From 3b5139e7f4219967bd9dcb6e1c833650bdafe6e3 Mon Sep 17 00:00:00 2001 From: kamal-kaur04 <38219887+kamal-kaur04@users.noreply.github.com> Date: Fri, 4 Aug 2023 12:08:09 +0530 Subject: [PATCH 3/7] chore: remove unnecessary files --- .../.config/dotnet-tools.json | 12 ------------ .../CSharp-Playwright-BrowserStack.csproj | 2 +- CSharp-Playwright-BrowserStack/packages.config | 6 ------ 3 files changed, 1 insertion(+), 19 deletions(-) delete mode 100644 CSharp-Playwright-BrowserStack/.config/dotnet-tools.json delete mode 100644 CSharp-Playwright-BrowserStack/packages.config diff --git a/CSharp-Playwright-BrowserStack/.config/dotnet-tools.json b/CSharp-Playwright-BrowserStack/.config/dotnet-tools.json deleted file mode 100644 index 898c74e..0000000 --- a/CSharp-Playwright-BrowserStack/.config/dotnet-tools.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "version": 1, - "isRoot": true, - "tools": { - "browserstack-sdk": { - "version": "1.3.2", - "commands": [ - "browserstack-sdk" - ] - } - } -} diff --git a/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.csproj b/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.csproj index a6148e6..8462b03 100644 --- a/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.csproj +++ b/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.csproj @@ -19,6 +19,6 @@ - + diff --git a/CSharp-Playwright-BrowserStack/packages.config b/CSharp-Playwright-BrowserStack/packages.config deleted file mode 100644 index aa9c106..0000000 --- a/CSharp-Playwright-BrowserStack/packages.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - From 6cae1c0edea58829eb15d495846f6c866c352b8a Mon Sep 17 00:00:00 2001 From: kamal-kaur04 <38219887+kamal-kaur04@users.noreply.github.com> Date: Mon, 7 Aug 2023 21:23:37 +0530 Subject: [PATCH 4/7] chore: readme change --- README.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/README.md b/README.md index 5a2cf97..c9c9e54 100644 --- a/README.md +++ b/README.md @@ -17,13 +17,7 @@ This sample elaborates the [NUnit](http://www.nunit.org/) Integration with Brows * To run local tests, dotnet test --filter "Category=sample-local-test" ### Running your tests from Test Explorer - To run a parallel tests, run test with fixture `sample-test` -```sh -dotnet test --filter "Category=sample-test" -``` - To run local tests, run test with fixture `sample-local-test` -```sh -dotnet test --filter "Category=sample-local-test" -``` Understand how many parallel sessions you need by using our [Parallel Test Calculator](https://www.browserstack.com/automate/parallel-calculator?ref=github) @@ -62,7 +56,7 @@ dotnet add BrowserStack.TestAdapter ``` ## Additional Resources -* [Documentation for writing automate test scripts in C#](https://www.browserstack.com/automate/c-sharp) +* [Documentation for writing automate playwright test scripts in C#](https://www.browserstack.com/docs/automate/playwright/getting-started/c-sharp) * [Customizing your tests on BrowserStack](https://www.browserstack.com/automate/capabilities) * [Browsers & mobile devices for selenium testing on BrowserStack](https://www.browserstack.com/list-of-browsers-and-platforms?product=automate) * [Using REST API to access information about your tests via the command-line interface](https://www.browserstack.com/automate/rest-api) From 80207dd1f56ecafcb999fafa0bea55a7ea873563 Mon Sep 17 00:00:00 2001 From: kamal-kaur04 <38219887+kamal-kaur04@users.noreply.github.com> Date: Thu, 10 Aug 2023 13:51:14 +0530 Subject: [PATCH 5/7] chore: move sln file at root --- ...erStack.sln => CSharp-Playwright-BrowserStack.sln | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) rename CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.sln => CSharp-Playwright-BrowserStack.sln (61%) diff --git a/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.sln b/CSharp-Playwright-BrowserStack.sln similarity index 61% rename from CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.sln rename to CSharp-Playwright-BrowserStack.sln index 9b579c6..0c7f63a 100644 --- a/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.sln +++ b/CSharp-Playwright-BrowserStack.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 25.0.1706.0 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharp-Playwright-BrowserStack", "CSharp-Playwright-BrowserStack.csproj", "{D309DDB3-1E3B-428B-B00B-1257F2532079}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharp-Playwright-BrowserStack", "CSharp-Playwright-BrowserStack\CSharp-Playwright-BrowserStack.csproj", "{5DC1EC78-C0C5-4869-9769-90718B820BB9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,15 +11,15 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D309DDB3-1E3B-428B-B00B-1257F2532079}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D309DDB3-1E3B-428B-B00B-1257F2532079}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D309DDB3-1E3B-428B-B00B-1257F2532079}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D309DDB3-1E3B-428B-B00B-1257F2532079}.Release|Any CPU.Build.0 = Release|Any CPU + {5DC1EC78-C0C5-4869-9769-90718B820BB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5DC1EC78-C0C5-4869-9769-90718B820BB9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5DC1EC78-C0C5-4869-9769-90718B820BB9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5DC1EC78-C0C5-4869-9769-90718B820BB9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {4977FC04-06AD-47AF-90C6-66010738CC2D} + SolutionGuid = {0A720641-5ECB-4F2D-8678-EB726CF8DDA7} EndGlobalSection EndGlobal From c4c147d874dac8a8b3ec968ab5b1d01d73f6dccf Mon Sep 17 00:00:00 2001 From: Aditya Samantaray Date: Fri, 12 Jan 2024 20:05:19 +0530 Subject: [PATCH 6/7] chore: use the latest available playwright version --- .../CSharp-Playwright-BrowserStack.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.csproj b/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.csproj index 8462b03..54ad78c 100644 --- a/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.csproj +++ b/CSharp-Playwright-BrowserStack/CSharp-Playwright-BrowserStack.csproj @@ -17,8 +17,8 @@ all - - + + From 3b6c405e05f866fc248fe84d0646823e2a752252 Mon Sep 17 00:00:00 2001 From: Hrithik Katiyar Date: Mon, 1 Jul 2024 16:22:44 +0530 Subject: [PATCH 7/7] Fixed linting issue --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 22ca79e..df0e817 100644 --- a/.gitignore +++ b/.gitignore @@ -4,5 +4,5 @@ TestResult.xml bin obj .vs -.DS_Store log +.DS_Store