diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..f68fb54
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,97 @@
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+
+# This workflow will build, test, sign and package a WPF or Windows Forms desktop application
+# built on .NET Core.
+# To learn how to migrate your existing application to .NET Core,
+# refer to https://docs.microsoft.com/en-us/dotnet/desktop-wpf/migration/convert-project-from-net-framework
+#
+# To configure this workflow:
+#
+# 1. Configure environment variables
+# GitHub sets default environment variables for every workflow run.
+# Replace the variables relative to your project in the "env" section below.
+#
+# 2. Signing
+# Generate a signing certificate in the Windows Application
+# Packaging Project or add an existing signing certificate to the project.
+# Next, use PowerShell to encode the .pfx file using Base64 encoding
+# by running the following Powershell script to generate the output string:
+#
+# $pfx_cert = Get-Content '.\SigningCertificate.pfx' -Encoding Byte
+# [System.Convert]::ToBase64String($pfx_cert) | Out-File 'SigningCertificate_Encoded.txt'
+#
+# Open the output file, SigningCertificate_Encoded.txt, and copy the
+# string inside. Then, add the string to the repo as a GitHub secret
+# and name it "Base64_Encoded_Pfx."
+# For more information on how to configure your signing certificate for
+# this workflow, refer to https://github.com/microsoft/github-actions-for-desktop-apps#signing
+#
+# Finally, add the signing certificate password to the repo as a secret and name it "Pfx_Key".
+# See "Build the Windows Application Packaging project" below to see how the secret is used.
+#
+# For more information on GitHub Actions, refer to https://github.com/features/actions
+# For a complete CI/CD sample to get started with GitHub Action workflows for Desktop Applications,
+# refer to https://github.com/microsoft/github-actions-for-desktop-apps
+
+name: .NET Core Desktop
+
+on:
+ push:
+ branches: [ "main" ]
+ pull_request:
+ branches: [ "main" ]
+
+jobs:
+
+ build:
+
+ # strategy:
+ # matrix:
+ # configuration: [Debug, Release]
+
+ runs-on: windows-latest # For a list of available runner types, refer to
+ # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on
+
+ env:
+ Solution_Name: src\FlaUI.WebDriver.sln
+ Test_Project_Path: src\FlaUI.WebDriver.UITests\FlaUI.WebDriver.UITests.csproj
+ Wap_Project_Directory: src\FlaUI.WebDriver.Package
+ Wap_Project_Path: src\FlaUI.WebDriver.Package\FlaUI.WebDriver.Package.wapproj
+ Configuration: Release
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Install .NET Core
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: 6.0.x
+
+ - name: Setup MSBuild.exe
+ uses: microsoft/setup-msbuild@v2
+
+ - name: Restore dependencies
+ run: msbuild $env:Solution_Name /t:Restore /p:Configuration=$env:Configuration /V:minimal
+
+ - name: Test
+ run: dotnet test --no-restore --verbosity normal
+ working-directory: ./src
+
+ - name: Create the app package
+ run: msbuild $env:Wap_Project_Path /p:Configuration=$env:Configuration /p:UapAppxPackageBuildMode=$env:Appx_Package_Build_Mode /p:AppxBundle=$env:Appx_Bundle /p:RestorePackages=false
+ env:
+ Appx_Bundle: Always
+ Appx_Bundle_Platforms: x86|x64
+ Appx_Package_Build_Mode: StoreUpload
+
+ - name: Upload build artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: MSIX Package
+ path: ${{ env.Wap_Project_Directory }}\AppPackages
diff --git a/src/FlaUI.WebDriver.Package/FlaUI.WebDriver.Package.wapproj b/src/FlaUI.WebDriver.Package/FlaUI.WebDriver.Package.wapproj
new file mode 100644
index 0000000..0d8eb55
--- /dev/null
+++ b/src/FlaUI.WebDriver.Package/FlaUI.WebDriver.Package.wapproj
@@ -0,0 +1,82 @@
+
+
+
+ 15.0
+
+
+
+ Debug
+ x86
+
+
+ Release
+ x86
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ Debug
+ ARM
+
+
+ Release
+ ARM
+
+
+ Debug
+ ARM64
+
+
+ Release
+ ARM64
+
+
+ Debug
+ AnyCPU
+
+
+ Release
+ AnyCPU
+
+
+
+ $(MSBuildExtensionsPath)\Microsoft\DesktopBridge\
+
+
+
+ c6b51974-4552-4854-82fe-f48ae94a66e7
+ 10.0.22621.0
+ 10.0.17763.0
+ en-US
+ false
+ $(NoWarn);NU1702
+ ..\FlaUI.WebDriver\FlaUI.WebDriver.csproj
+
+
+
+ Designer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/FlaUI.WebDriver.Package/Images/LockScreenLogo.scale-200.png b/src/FlaUI.WebDriver.Package/Images/LockScreenLogo.scale-200.png
new file mode 100644
index 0000000..735f57a
Binary files /dev/null and b/src/FlaUI.WebDriver.Package/Images/LockScreenLogo.scale-200.png differ
diff --git a/src/FlaUI.WebDriver.Package/Images/SplashScreen.scale-200.png b/src/FlaUI.WebDriver.Package/Images/SplashScreen.scale-200.png
new file mode 100644
index 0000000..023e7f1
Binary files /dev/null and b/src/FlaUI.WebDriver.Package/Images/SplashScreen.scale-200.png differ
diff --git a/src/FlaUI.WebDriver.Package/Images/Square150x150Logo.scale-200.png b/src/FlaUI.WebDriver.Package/Images/Square150x150Logo.scale-200.png
new file mode 100644
index 0000000..af49fec
Binary files /dev/null and b/src/FlaUI.WebDriver.Package/Images/Square150x150Logo.scale-200.png differ
diff --git a/src/FlaUI.WebDriver.Package/Images/Square44x44Logo.scale-200.png b/src/FlaUI.WebDriver.Package/Images/Square44x44Logo.scale-200.png
new file mode 100644
index 0000000..ce342a2
Binary files /dev/null and b/src/FlaUI.WebDriver.Package/Images/Square44x44Logo.scale-200.png differ
diff --git a/src/FlaUI.WebDriver.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png b/src/FlaUI.WebDriver.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 0000000..f6c02ce
Binary files /dev/null and b/src/FlaUI.WebDriver.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png differ
diff --git a/src/FlaUI.WebDriver.Package/Images/StoreLogo.png b/src/FlaUI.WebDriver.Package/Images/StoreLogo.png
new file mode 100644
index 0000000..7385b56
Binary files /dev/null and b/src/FlaUI.WebDriver.Package/Images/StoreLogo.png differ
diff --git a/src/FlaUI.WebDriver.Package/Images/Wide310x150Logo.scale-200.png b/src/FlaUI.WebDriver.Package/Images/Wide310x150Logo.scale-200.png
new file mode 100644
index 0000000..288995b
Binary files /dev/null and b/src/FlaUI.WebDriver.Package/Images/Wide310x150Logo.scale-200.png differ
diff --git a/src/FlaUI.WebDriver.Package/Package.appxmanifest b/src/FlaUI.WebDriver.Package/Package.appxmanifest
new file mode 100644
index 0000000..3a0e5ee
--- /dev/null
+++ b/src/FlaUI.WebDriver.Package/Package.appxmanifest
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+ FlaUI.WebDriver.Package
+ aristotelos
+ Images\StoreLogo.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/FlaUI.WebDriver.UITests/FlaUI.WebDriver.UITests.csproj b/src/FlaUI.WebDriver.UITests/FlaUI.WebDriver.UITests.csproj
index 8f8563b..fd1260f 100644
--- a/src/FlaUI.WebDriver.UITests/FlaUI.WebDriver.UITests.csproj
+++ b/src/FlaUI.WebDriver.UITests/FlaUI.WebDriver.UITests.csproj
@@ -18,4 +18,8 @@
+
+
+
+
diff --git a/src/FlaUI.WebDriver.UITests/WebDriverFixture.cs b/src/FlaUI.WebDriver.UITests/WebDriverFixture.cs
index 59c62b7..e37eaca 100644
--- a/src/FlaUI.WebDriver.UITests/WebDriverFixture.cs
+++ b/src/FlaUI.WebDriver.UITests/WebDriverFixture.cs
@@ -9,7 +9,7 @@ namespace FlaUI.WebDriver.UITests
[SetUpFixture]
public class WebDriverFixture
{
- public static readonly Uri WebDriverUrl = new Uri("http://localhost:4723/");
+ public static readonly Uri WebDriverUrl = new Uri("http://localhost:9723/");
private Process _webDriverProcess;
diff --git a/src/FlaUI.WebDriver.sln b/src/FlaUI.WebDriver.sln
index 4a9b0d1..cfa373f 100644
--- a/src/FlaUI.WebDriver.sln
+++ b/src/FlaUI.WebDriver.sln
@@ -13,24 +13,112 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FlaUI.WebDriver", "FlaUI.We
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FlaUI.WebDriver.UITests", "FlaUI.WebDriver.UITests\FlaUI.WebDriver.UITests.csproj", "{5315D9CF-DDA4-49AE-BA92-AB5814E61901}"
EndProject
+Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "FlaUI.WebDriver.Package", "FlaUI.WebDriver.Package\FlaUI.WebDriver.Package.wapproj", "{C6B51974-4552-4854-82FE-F48AE94A66E7}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|ARM = Debug|ARM
+ Debug|ARM64 = Debug|ARM64
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
+ Release|ARM = Release|ARM
+ Release|ARM64 = Release|ARM64
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C8276299-FA43-409B-A969-EF030AB56224}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C8276299-FA43-409B-A969-EF030AB56224}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C8276299-FA43-409B-A969-EF030AB56224}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {C8276299-FA43-409B-A969-EF030AB56224}.Debug|ARM.Build.0 = Debug|Any CPU
+ {C8276299-FA43-409B-A969-EF030AB56224}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {C8276299-FA43-409B-A969-EF030AB56224}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {C8276299-FA43-409B-A969-EF030AB56224}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {C8276299-FA43-409B-A969-EF030AB56224}.Debug|x64.Build.0 = Debug|Any CPU
+ {C8276299-FA43-409B-A969-EF030AB56224}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C8276299-FA43-409B-A969-EF030AB56224}.Debug|x86.Build.0 = Debug|Any CPU
{C8276299-FA43-409B-A969-EF030AB56224}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C8276299-FA43-409B-A969-EF030AB56224}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C8276299-FA43-409B-A969-EF030AB56224}.Release|ARM.ActiveCfg = Release|Any CPU
+ {C8276299-FA43-409B-A969-EF030AB56224}.Release|ARM.Build.0 = Release|Any CPU
+ {C8276299-FA43-409B-A969-EF030AB56224}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {C8276299-FA43-409B-A969-EF030AB56224}.Release|ARM64.Build.0 = Release|Any CPU
+ {C8276299-FA43-409B-A969-EF030AB56224}.Release|x64.ActiveCfg = Release|Any CPU
+ {C8276299-FA43-409B-A969-EF030AB56224}.Release|x64.Build.0 = Release|Any CPU
+ {C8276299-FA43-409B-A969-EF030AB56224}.Release|x86.ActiveCfg = Release|Any CPU
+ {C8276299-FA43-409B-A969-EF030AB56224}.Release|x86.Build.0 = Release|Any CPU
{07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Debug|ARM.Build.0 = Debug|Any CPU
+ {07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Debug|x64.Build.0 = Debug|Any CPU
+ {07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Debug|x86.Build.0 = Debug|Any CPU
{07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Release|Any CPU.ActiveCfg = Release|Any CPU
{07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Release|Any CPU.Build.0 = Release|Any CPU
+ {07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Release|ARM.ActiveCfg = Release|Any CPU
+ {07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Release|ARM.Build.0 = Release|Any CPU
+ {07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Release|ARM64.Build.0 = Release|Any CPU
+ {07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Release|x64.ActiveCfg = Release|Any CPU
+ {07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Release|x64.Build.0 = Release|Any CPU
+ {07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Release|x86.ActiveCfg = Release|Any CPU
+ {07FE5EE9-0104-42CE-A79D-88FD7D79B542}.Release|x86.Build.0 = Release|Any CPU
{5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Debug|ARM.Build.0 = Debug|Any CPU
+ {5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Debug|x64.Build.0 = Debug|Any CPU
+ {5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Debug|x86.Build.0 = Debug|Any CPU
{5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Release|ARM.ActiveCfg = Release|Any CPU
+ {5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Release|ARM.Build.0 = Release|Any CPU
+ {5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Release|ARM64.Build.0 = Release|Any CPU
+ {5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Release|x64.ActiveCfg = Release|Any CPU
+ {5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Release|x64.Build.0 = Release|Any CPU
+ {5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Release|x86.ActiveCfg = Release|Any CPU
+ {5315D9CF-DDA4-49AE-BA92-AB5814E61901}.Release|x86.Build.0 = Release|Any CPU
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Debug|ARM.ActiveCfg = Debug|ARM
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Debug|ARM.Build.0 = Debug|ARM
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Debug|ARM.Deploy.0 = Debug|ARM
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Debug|ARM64.Build.0 = Debug|ARM64
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Debug|ARM64.Deploy.0 = Debug|ARM64
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Debug|x64.ActiveCfg = Debug|x64
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Debug|x64.Build.0 = Debug|x64
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Debug|x64.Deploy.0 = Debug|x64
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Debug|x86.ActiveCfg = Debug|x86
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Debug|x86.Build.0 = Debug|x86
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Debug|x86.Deploy.0 = Debug|x86
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Release|ARM.ActiveCfg = Release|ARM
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Release|ARM.Build.0 = Release|ARM
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Release|ARM.Deploy.0 = Release|ARM
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Release|ARM64.ActiveCfg = Release|ARM64
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Release|ARM64.Build.0 = Release|ARM64
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Release|ARM64.Deploy.0 = Release|ARM64
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Release|x64.ActiveCfg = Release|x64
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Release|x64.Build.0 = Release|x64
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Release|x64.Deploy.0 = Release|x64
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Release|x86.ActiveCfg = Release|x86
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Release|x86.Build.0 = Release|x86
+ {C6B51974-4552-4854-82FE-F48AE94A66E7}.Release|x86.Deploy.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/FlaUI.WebDriver/FlaUI.WebDriver.csproj b/src/FlaUI.WebDriver/FlaUI.WebDriver.csproj
index 7b1209e..81b40b9 100644
--- a/src/FlaUI.WebDriver/FlaUI.WebDriver.csproj
+++ b/src/FlaUI.WebDriver/FlaUI.WebDriver.csproj
@@ -8,6 +8,10 @@
false
+
+ FlaUI.WebDriver.Program
+
+