Skip to content

Commit 9613b1a

Browse files
authored
Update package versions (Appium 5.0.0-beta03, Selenium 4.7.0), Rework TouchActions (#34)
* Update package versions * Rework TouchActions to remove obsolete class reference * Update license year * Update the pipeline (appium version) and websession config * Stabilize dump test and add dumps to pipeline's artifacts * Run emulator with args -gpu swiftshader_indirect -noaudio -no-boot-anim
1 parent cf8d30a commit 9613b1a

File tree

14 files changed

+64
-38
lines changed

14 files changed

+64
-38
lines changed

Aquality.Appium.Mobile/Aquality.Appium.Mobile.sln

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio Version 16
4-
VisualStudioVersion = 16.0.29613.14
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.2.32616.157
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C20555E4-7B6C-47E0-AB89-ADA80F4B1106}"
77
EndProject
8-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aquality.Appium.Mobile", "src\Aquality.Appium.Mobile\Aquality.Appium.Mobile.csproj", "{6FB08B9A-2D6E-4465-B939-97547B3E3ADE}"
8+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aquality.Appium.Mobile", "src\Aquality.Appium.Mobile\Aquality.Appium.Mobile.csproj", "{6FB08B9A-2D6E-4465-B939-97547B3E3ADE}"
99
EndProject
1010
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{B0327F3B-D308-4443-8268-39DF01EF087C}"
1111
EndProject
12-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aquality.Appium.Mobile.Tests", "tests\Aquality.Appium.Mobile.Tests\Aquality.Appium.Mobile.Tests.csproj", "{84F82BC0-6EFA-4373-BCCD-00583DC3321B}"
12+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aquality.Appium.Mobile.Tests", "tests\Aquality.Appium.Mobile.Tests\Aquality.Appium.Mobile.Tests.csproj", "{84F82BC0-6EFA-4373-BCCD-00583DC3321B}"
1313
EndProject
1414
Global
1515
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,22 @@
11
using Aquality.Appium.Mobile.Applications;
22
using Aquality.Appium.Mobile.Configurations;
33
using Aquality.Selenium.Core.Utilities;
4-
using OpenQA.Selenium.Appium.Interfaces;
5-
using OpenQA.Selenium.Appium.MultiTouch;
4+
using OpenQA.Selenium.Interactions;
65
using System;
6+
using System.Collections.Generic;
77
using System.Drawing;
88

99
namespace Aquality.Appium.Mobile.Actions
1010
{
1111
public class TouchActions : ITouchActions
1212
{
13+
private TimeSpan SwipeDuration => AqualityServices.Get<ITouchActionsSettings>().SwipeDuration;
14+
15+
private ActionSequence PressSequence(PointerInputDevice finger, Point startPoint) => new ActionSequence(finger, initialSize: 0)
16+
.AddAction(finger.CreatePointerMove(CoordinateOrigin.Viewport, startPoint.X, startPoint.Y, TimeSpan.Zero))
17+
.AddAction(finger.CreatePointerDown(MouseButton.Left));
18+
19+
1320
public void Swipe(Point startPoint, Point endPoint)
1421
{
1522
AqualityServices.LocalizedLogger.Info(
@@ -18,11 +25,7 @@ public void Swipe(Point startPoint, Point endPoint)
1825
startPoint.Y,
1926
endPoint.X,
2027
endPoint.Y);
21-
PerformTouchAction(
22-
touchAction => touchAction
23-
.Press(startPoint.X, startPoint.Y)
24-
.Wait(GetLongSwipeDuration()),
25-
endPoint);
28+
PerformTouchAction(finger => PressSequence(finger, startPoint), endPoint);
2629
}
2730

2831
public void SwipeWithLongPress(Point startPoint, Point endPoint)
@@ -33,21 +36,19 @@ public void SwipeWithLongPress(Point startPoint, Point endPoint)
3336
startPoint.Y,
3437
endPoint.X,
3538
endPoint.Y);
36-
PerformTouchAction(touchAction => touchAction.LongPress(startPoint.X, startPoint.Y), endPoint);
39+
PerformTouchAction(finger => PressSequence(finger, startPoint).AddAction(finger.CreatePointerMove(CoordinateOrigin.Viewport, startPoint.X, startPoint.Y, SwipeDuration)), endPoint);
3740
}
3841

39-
protected void PerformTouchAction(Func<ITouchAction, ITouchAction> function, Point endPoint)
42+
protected void PerformTouchAction(Func<PointerInputDevice, ActionSequence> getActionSequence, Point endPoint)
4043
{
4144
var actionRetrier = AqualityServices.Get<IElementActionRetrier>();
42-
var touchAction = new TouchAction(AqualityServices.Application.Driver);
43-
actionRetrier.DoWithRetry(() =>
44-
function(touchAction).MoveTo(endPoint.X, endPoint.Y).Release().Perform());
45-
}
45+
var finger = new PointerInputDevice(PointerKind.Touch, "finger");
46+
var actionSequence = getActionSequence(finger)
47+
.AddAction(finger.CreatePointerMove(CoordinateOrigin.Viewport, endPoint.X, endPoint.Y, SwipeDuration))
48+
.AddAction(finger.CreatePointerUp(MouseButton.Left));
4649

47-
private long GetLongSwipeDuration()
48-
{
49-
var swipeDuration = AqualityServices.Get<ITouchActionsSettings>().SwipeDuration;
50-
return Convert.ToInt64(swipeDuration.TotalMilliseconds);
50+
actionRetrier.DoWithRetry(() =>
51+
AqualityServices.Application.Driver.PerformActions(new List<ActionSequence> { actionSequence }));
5152
}
5253
}
5354
}

Aquality.Appium.Mobile/src/Aquality.Appium.Mobile/Aquality.Appium.Mobile.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<RepositoryType>git</RepositoryType>
1515
<PackageTags>appium mobile ios android automation</PackageTags>
1616
<PackageLicenseFile>LICENSE</PackageLicenseFile>
17-
<Copyright>Copyright 2022 Aquality Automation</Copyright>
17+
<Copyright>Copyright 2023 Aquality Automation</Copyright>
1818
<IsPackable>true</IsPackable>
1919
</PropertyGroup>
2020

@@ -49,8 +49,8 @@
4949
</ItemGroup>
5050

5151
<ItemGroup>
52-
<PackageReference Include="Appium.WebDriver" Version="5.0.0-beta01" />
53-
<PackageReference Include="Aquality.Selenium.Core" Version="2.0.2" />
52+
<PackageReference Include="Appium.WebDriver" Version="5.0.0-beta03" />
53+
<PackageReference Include="Aquality.Selenium.Core" Version="2.1.0" />
5454
</ItemGroup>
5555

5656
</Project>

Aquality.Appium.Mobile/tests/Aquality.Appium.Mobile.Tests/Aquality.Appium.Mobile.Tests.csproj

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
</PropertyGroup>
99

1010
<ItemGroup>
11-
<PackageReference Include="nunit" Version="3.13.2" />
12-
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1">
11+
<PackageReference Include="nunit" Version="3.13.3" />
12+
<PackageReference Include="NUnit3TestAdapter" Version="4.3.1">
1313
<PrivateAssets>all</PrivateAssets>
1414
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1515
</PackageReference>
16-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
16+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
1717
<PackageReference Include="runtime.osx.10.10-x64.CoreCompat.System.Drawing" Version="6.0.5.128" />
1818
</ItemGroup>
1919

@@ -37,6 +37,19 @@
3737
<None Update="Resources\settings.json">
3838
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
3939
</None>
40+
<None Update="Resources\VisualDumps\Invoke Search\ScreenElement.png">
41+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
42+
</None>
43+
<None Update="Resources\VisualDumps\Invoke Search\searchTextBox.png">
44+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
45+
</None>
46+
<None Update="Resources\VisualDumps\Invoke Search\startSearchButton.png">
47+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
48+
</None>
4049
</ItemGroup>
50+
<ItemGroup>
51+
<Folder Include="Resources\VisualDumps\Invoke Search\" />
52+
</ItemGroup>
53+
4154

4255
</Project>
7.22 KB
Loading
677 Bytes
Loading
6.87 KB
Loading

Aquality.Appium.Mobile/tests/Aquality.Appium.Mobile.Tests/Resources/settings.androidwebsession.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
"browserName": "Chrome",
1111
"platformName": "Android",
1212
"automationName": "UIAutomator2",
13+
"chromeOptions": {
14+
"w3c": false
15+
},
1316
"uiautomator2ServerInstallTimeout": 30000,
1417
"eventTimings": true
1518
}

Aquality.Appium.Mobile/tests/Aquality.Appium.Mobile.Tests/Resources/settings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,6 @@
6060
"defaultThreshold": 0.012,
6161
"comparisonWidth": 16,
6262
"comparisonHeight": 16,
63-
"pathToDumps": "../../../Resources/VisualDumps/"
63+
"pathToDumps": "./Resources/VisualDumps/"
6464
}
6565
}

Aquality.Appium.Mobile/tests/Aquality.Appium.Mobile.Tests/Samples/Android/NativeApp/AndroidBasicInteractionsTest.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using Aquality.Appium.Mobile.Elements.Interfaces;
33
using Aquality.Appium.Mobile.Tests.Samples.Android.NativeApp.ApiDemos.Screens;
44
using NUnit.Framework;
5+
using System.Linq;
56

67
namespace Aquality.Appium.Mobile.Tests.Samples.Android.NativeApp
78
{
@@ -30,12 +31,12 @@ public void SaveAndCompareScreenDump()
3031
var searchScreen = new InvokeSearchScreen();
3132
searchScreen.Open();
3233
Assume.That(searchScreen.State.IsDisplayed, $"{searchScreen.Name} should be opened from the menu");
33-
34-
searchScreen.Dump.Save();
35-
Assert.That(searchScreen.Dump.Compare(), Is.EqualTo(0), "Current screen should have no visual difference comparing to just saved dump");
34+
var customDumpName = $"my dump of {searchScreen.Name}";
35+
searchScreen.Dump.Save(customDumpName);
36+
Assert.That(searchScreen.Dump.Compare(customDumpName), Is.EqualTo(0), "Current screen should have no visual difference comparing to just saved dump");
3637
const string query = "Hello world!";
3738
searchScreen.TypeQuery(query);
38-
Assert.That(searchScreen.Dump.Compare(), Is.GreaterThan(0), "Current screen should have visual difference comparing to dump saved before the search");
39+
Assert.That(searchScreen.Dump.Compare(), Is.GreaterThan(0), "Current screen after the search should have visual difference comparing to dump saved");
3940
}
4041

4142
[Test]

0 commit comments

Comments
 (0)