diff --git a/samples/IntegrationTestApp/IntegrationTestApp.csproj b/samples/IntegrationTestApp/IntegrationTestApp.csproj
index 77bfa828a7..dedad227a3 100644
--- a/samples/IntegrationTestApp/IntegrationTestApp.csproj
+++ b/samples/IntegrationTestApp/IntegrationTestApp.csproj
@@ -4,6 +4,8 @@
$(AvsCurrentTargetFramework)
enable
$(NoWarn);AVP1012
+ true
+
@@ -22,6 +24,8 @@
+
+
diff --git a/tests/Avalonia.IntegrationTests.Appium/AutomationTests.cs b/tests/Avalonia.IntegrationTests.Appium/AutomationTests.cs
index 4d8760ad61..6599bb3342 100644
--- a/tests/Avalonia.IntegrationTests.Appium/AutomationTests.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/AutomationTests.cs
@@ -1,4 +1,5 @@
-using OpenQA.Selenium.Appium;
+using OpenQA.Selenium;
+using OpenQA.Selenium.Appium;
using Xunit;
namespace Avalonia.IntegrationTests.Appium
@@ -6,14 +7,14 @@ namespace Avalonia.IntegrationTests.Appium
[Collection("Default")]
public class AutomationTests
{
- private readonly AppiumDriver _session;
+ private readonly AppiumDriver _session;
public AutomationTests(DefaultAppFixture fixture)
{
_session = fixture.Session;
- var tabs = _session.FindElementByAccessibilityId("MainTabs");
- var tab = tabs.FindElementByName("Automation");
+ var tabs = _session.FindElement(MobileBy.AccessibilityId("MainTabs"));
+ var tab = tabs.FindElement(MobileBy.Name("Automation"));
tab.Click();
}
@@ -22,15 +23,15 @@ namespace Avalonia.IntegrationTests.Appium
{
// AutomationID can be specified by the Name or AutomationProperties.AutomationId
// properties, with the latter taking precedence.
- var byName = _session.FindElementByAccessibilityId("TextBlockWithName");
- var byAutomationId = _session.FindElementByAccessibilityId("TextBlockWithNameAndAutomationId");
+ var byName = _session.FindElement(MobileBy.AccessibilityId("TextBlockWithName"));
+ var byAutomationId = _session.FindElement(MobileBy.AccessibilityId("TextBlockWithNameAndAutomationId"));
}
[Fact]
public void LabeledBy()
{
- var label = _session.FindElementByAccessibilityId("TextBlockAsLabel");
- var labeledTextBox = _session.FindElementByAccessibilityId("LabeledByTextBox");
+ var label = _session.FindElement(MobileBy.AccessibilityId("TextBlockAsLabel"));
+ var labeledTextBox = _session.FindElement(MobileBy.AccessibilityId("LabeledByTextBox"));
Assert.Equal("Label for TextBox", label.Text);
Assert.Equal("Label for TextBox", labeledTextBox.GetName());
diff --git a/tests/Avalonia.IntegrationTests.Appium/Avalonia.IntegrationTests.Appium.csproj b/tests/Avalonia.IntegrationTests.Appium/Avalonia.IntegrationTests.Appium.csproj
index a3c19c98b2..a97ded2aae 100644
--- a/tests/Avalonia.IntegrationTests.Appium/Avalonia.IntegrationTests.Appium.csproj
+++ b/tests/Avalonia.IntegrationTests.Appium/Avalonia.IntegrationTests.Appium.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/tests/Avalonia.IntegrationTests.Appium/ButtonTests.cs b/tests/Avalonia.IntegrationTests.Appium/ButtonTests.cs
index fc2325b29e..cdea4352a5 100644
--- a/tests/Avalonia.IntegrationTests.Appium/ButtonTests.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/ButtonTests.cs
@@ -1,4 +1,5 @@
using System.Runtime.InteropServices;
+using OpenQA.Selenium;
using OpenQA.Selenium.Appium;
using Xunit;
@@ -7,21 +8,21 @@ namespace Avalonia.IntegrationTests.Appium
[Collection("Default")]
public class ButtonTests
{
- private readonly AppiumDriver _session;
+ private readonly AppiumDriver _session;
public ButtonTests(DefaultAppFixture fixture)
{
_session = fixture.Session;
- var tabs = _session.FindElementByAccessibilityId("MainTabs");
- var tab = tabs.FindElementByName("Button");
+ var tabs = _session.FindElement(MobileBy.AccessibilityId("MainTabs"));
+ var tab = tabs.FindElement(MobileBy.Name("Button"));
tab.Click();
}
[Fact]
public void DisabledButton()
{
- var button = _session.FindElementByAccessibilityId("DisabledButton");
+ var button = _session.FindElement(MobileBy.AccessibilityId("DisabledButton"));
Assert.Equal("Disabled Button", button.Text);
Assert.False(button.Enabled);
@@ -30,7 +31,7 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void EffectivelyDisabledButton()
{
- var button = _session.FindElementByAccessibilityId("EffectivelyDisabledButton");
+ var button = _session.FindElement(MobileBy.AccessibilityId("EffectivelyDisabledButton"));
Assert.Equal("Effectively Disabled Button", button.Text);
Assert.False(button.Enabled);
@@ -39,7 +40,7 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void BasicButton()
{
- var button = _session.FindElementByAccessibilityId("BasicButton");
+ var button = _session.FindElement(MobileBy.AccessibilityId("BasicButton"));
Assert.Equal("Basic Button", button.Text);
Assert.True(button.Enabled);
@@ -48,7 +49,7 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void ButtonWithTextBlock()
{
- var button = _session.FindElementByAccessibilityId("ButtonWithTextBlock");
+ var button = _session.FindElement(MobileBy.AccessibilityId("ButtonWithTextBlock"));
Assert.Equal("Button with TextBlock", button.Text);
}
@@ -56,7 +57,7 @@ namespace Avalonia.IntegrationTests.Appium
[PlatformFact(TestPlatforms.Windows)]
public void ButtonWithAcceleratorKey()
{
- var button = _session.FindElementByAccessibilityId("ButtonWithAcceleratorKey");
+ var button = _session.FindElement(MobileBy.AccessibilityId("ButtonWithAcceleratorKey"));
Assert.Equal("Ctrl+B", button.GetAttribute("AcceleratorKey"));
}
diff --git a/tests/Avalonia.IntegrationTests.Appium/CheckBoxTests.cs b/tests/Avalonia.IntegrationTests.Appium/CheckBoxTests.cs
index 6c154fa268..6a133d8e73 100644
--- a/tests/Avalonia.IntegrationTests.Appium/CheckBoxTests.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/CheckBoxTests.cs
@@ -1,4 +1,5 @@
-using OpenQA.Selenium.Appium;
+using OpenQA.Selenium;
+using OpenQA.Selenium.Appium;
using Xunit;
namespace Avalonia.IntegrationTests.Appium
@@ -6,21 +7,21 @@ namespace Avalonia.IntegrationTests.Appium
[Collection("Default")]
public class CheckBoxTests
{
- private readonly AppiumDriver _session;
+ private readonly AppiumDriver _session;
public CheckBoxTests(DefaultAppFixture fixture)
{
_session = fixture.Session;
- var tabs = _session.FindElementByAccessibilityId("MainTabs");
- var tab = tabs.FindElementByName("CheckBox");
+ var tabs = _session.FindElement(MobileBy.AccessibilityId("MainTabs"));
+ var tab = tabs.FindElement(MobileBy.Name("CheckBox"));
tab.Click();
}
[Fact]
public void UncheckedCheckBox()
{
- var checkBox = _session.FindElementByAccessibilityId("UncheckedCheckBox");
+ var checkBox = _session.FindElement(MobileBy.AccessibilityId("UncheckedCheckBox"));
Assert.Equal("Unchecked", checkBox.GetName());
Assert.Equal(false, checkBox.GetIsChecked());
@@ -32,7 +33,7 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void CheckedCheckBox()
{
- var checkBox = _session.FindElementByAccessibilityId("CheckedCheckBox");
+ var checkBox = _session.FindElement(MobileBy.AccessibilityId("CheckedCheckBox"));
Assert.Equal("Checked", checkBox.GetName());
Assert.Equal(true, checkBox.GetIsChecked());
@@ -44,7 +45,7 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void ThreeStateCheckBox()
{
- var checkBox = _session.FindElementByAccessibilityId("ThreeStateCheckBox");
+ var checkBox = _session.FindElement(MobileBy.AccessibilityId("ThreeStateCheckBox"));
Assert.Equal("ThreeState", checkBox.GetName());
Assert.Null(checkBox.GetIsChecked());
diff --git a/tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs b/tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs
index 9e35d366d2..ea9ab432da 100644
--- a/tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs
@@ -6,27 +6,27 @@ namespace Avalonia.IntegrationTests.Appium
{
public abstract class ComboBoxTests
{
- private readonly AppiumDriver _session;
+ private readonly AppiumDriver _session;
public ComboBoxTests(DefaultAppFixture fixture)
{
_session = fixture.Session;
- var tabs = _session.FindElementByAccessibilityId("MainTabs");
- var tab = tabs.FindElementByName("ComboBox");
+ var tabs = _session.FindElement(MobileBy.AccessibilityId("MainTabs"));
+ var tab = tabs.FindElement(MobileBy.Name("ComboBox"));
tab.Click();
}
[Fact]
public void Can_Change_Selection_Using_Mouse()
{
- var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
+ var comboBox = _session.FindElement(MobileBy.AccessibilityId("BasicComboBox"));
- _session.FindElementByAccessibilityId("ComboBoxSelectFirst").Click();
+ _session.FindElement(MobileBy.AccessibilityId("ComboBoxSelectFirst")).Click();
Assert.Equal("Item 0", comboBox.GetComboBoxValue());
comboBox.Click();
- _session.FindElementByName("Item 1").SendClick();
+ _session.FindElement(MobileBy.Name("Item 1")).SendClick();
Assert.Equal("Item 1", comboBox.GetComboBoxValue());
}
@@ -34,13 +34,13 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void Can_Change_Selection_From_Unselected_Using_Mouse()
{
- var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
+ var comboBox = _session.FindElement(MobileBy.AccessibilityId("BasicComboBox"));
- _session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
+ _session.FindElement(MobileBy.AccessibilityId("ComboBoxSelectionClear")).Click();
Assert.Equal(string.Empty, comboBox.GetComboBoxValue());
comboBox.Click();
- _session.FindElementByName("Item 0").SendClick();
+ _session.FindElement(MobileBy.Name("Item 0")).SendClick();
Assert.Equal("Item 0", comboBox.GetComboBoxValue());
}
@@ -48,13 +48,13 @@ namespace Avalonia.IntegrationTests.Appium
[PlatformFact(TestPlatforms.Windows)]
public void Can_Change_Selection_With_Keyboard_When_Closed()
{
- var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
- var wrap = _session.FindElementByAccessibilityId("ComboBoxWrapSelection");
+ var comboBox = _session.FindElement(MobileBy.AccessibilityId("BasicComboBox"));
+ var wrap = _session.FindElement(MobileBy.AccessibilityId("ComboBoxWrapSelection"));
if (wrap.GetIsChecked() != false)
wrap.Click();
- _session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
+ _session.FindElement(MobileBy.AccessibilityId("ComboBoxSelectionClear")).Click();
comboBox.SendKeys(Keys.ArrowDown);
Assert.Equal("Item 0", comboBox.GetComboBoxValue());
@@ -75,13 +75,13 @@ namespace Avalonia.IntegrationTests.Appium
[PlatformFact(TestPlatforms.Windows)]
public void Can_Change_Wrapping_Selection_With_Keyboard_When_Closed()
{
- var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
- var wrap = _session.FindElementByAccessibilityId("ComboBoxWrapSelection");
+ var comboBox = _session.FindElement(MobileBy.AccessibilityId("BasicComboBox"));
+ var wrap = _session.FindElement(MobileBy.AccessibilityId("ComboBoxWrapSelection"));
if (wrap.GetIsChecked() != true)
wrap.Click();
- _session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
+ _session.FindElement(MobileBy.AccessibilityId("ComboBoxSelectionClear")).Click();
comboBox.SendKeys(Keys.ArrowDown);
Assert.Equal("Item 0", comboBox.GetComboBoxValue());
@@ -105,15 +105,15 @@ namespace Avalonia.IntegrationTests.Appium
[PlatformFact(TestPlatforms.Windows)]
public void Can_Change_Selection_When_Open_With_Keyboard()
{
- var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
+ var comboBox = _session.FindElement(MobileBy.AccessibilityId("BasicComboBox"));
- _session.FindElementByAccessibilityId("ComboBoxSelectFirst").Click();
+ _session.FindElement(MobileBy.AccessibilityId("ComboBoxSelectFirst")).Click();
Assert.Equal("Item 0", comboBox.GetComboBoxValue());
comboBox.SendKeys(Keys.LeftAlt + Keys.ArrowDown);
comboBox.SendKeys(Keys.ArrowDown);
- var item = _session.FindElementByName("Item 1");
+ var item = _session.FindElement(MobileBy.Name("Item 1"));
item.SendKeys(Keys.Enter);
Assert.Equal("Item 1", comboBox.GetComboBoxValue());
@@ -122,15 +122,15 @@ namespace Avalonia.IntegrationTests.Appium
[PlatformFact(TestPlatforms.Windows)]
public void Can_Change_Selection_When_Open_With_Keyboard_From_Unselected()
{
- var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
+ var comboBox = _session.FindElement(MobileBy.AccessibilityId("BasicComboBox"));
- _session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
+ _session.FindElement(MobileBy.AccessibilityId("ComboBoxSelectionClear")).Click();
Assert.Equal(string.Empty, comboBox.GetComboBoxValue());
comboBox.SendKeys(Keys.LeftAlt + Keys.ArrowDown);
comboBox.SendKeys(Keys.ArrowDown);
- var item = _session.FindElementByName("Item 0");
+ var item = _session.FindElement(MobileBy.Name("Item 0"));
item.SendKeys(Keys.Enter);
Assert.Equal("Item 0", comboBox.GetComboBoxValue());
@@ -139,15 +139,15 @@ namespace Avalonia.IntegrationTests.Appium
[PlatformFact(TestPlatforms.Windows)]
public void Can_Cancel_Keyboard_Selection_With_Escape()
{
- var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
+ var comboBox = _session.FindElement(MobileBy.AccessibilityId("BasicComboBox"));
- _session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
+ _session.FindElement(MobileBy.AccessibilityId("ComboBoxSelectionClear")).Click();
Assert.Equal(string.Empty, comboBox.GetComboBoxValue());
comboBox.SendKeys(Keys.LeftAlt + Keys.ArrowDown);
comboBox.SendKeys(Keys.ArrowDown);
- var item = _session.FindElementByName("Item 0");
+ var item = _session.FindElement(MobileBy.Name("Item 0"));
item.SendKeys(Keys.Escape);
Assert.Equal(string.Empty, comboBox.GetComboBoxValue());
diff --git a/tests/Avalonia.IntegrationTests.Appium/DefaultAppFixture.cs b/tests/Avalonia.IntegrationTests.Appium/DefaultAppFixture.cs
index bdc5ca5f41..55c2f14d97 100644
--- a/tests/Avalonia.IntegrationTests.Appium/DefaultAppFixture.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/DefaultAppFixture.cs
@@ -21,7 +21,7 @@ namespace Avalonia.IntegrationTests.Appium
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
ConfigureWin32Options(options);
- Session = new WindowsDriver(
+ Session = new WindowsDriver(
new Uri("http://127.0.0.1:4723"),
options);
@@ -33,7 +33,7 @@ namespace Avalonia.IntegrationTests.Appium
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
ConfigureMacOptions(options);
- Session = new MacDriver(
+ Session = new MacDriver(
new Uri("http://127.0.0.1:4723/wd/hub"),
options);
}
@@ -46,20 +46,20 @@ namespace Avalonia.IntegrationTests.Appium
protected virtual void ConfigureWin32Options(AppiumOptions options)
{
var path = Path.GetFullPath(TestAppPath);
- options.AddAdditionalCapability(MobileCapabilityType.App, path);
- options.AddAdditionalCapability(MobileCapabilityType.PlatformName, MobilePlatform.Windows);
- options.AddAdditionalCapability(MobileCapabilityType.DeviceName, "WindowsPC");
+ options.AddAdditionalAppiumOption(MobileCapabilityType.App, path);
+ options.AddAdditionalAppiumOption(MobileCapabilityType.PlatformName, MobilePlatform.Windows);
+ options.AddAdditionalAppiumOption(MobileCapabilityType.DeviceName, "WindowsPC");
}
protected virtual void ConfigureMacOptions(AppiumOptions options)
{
- options.AddAdditionalCapability("appium:bundleId", TestAppBundleId);
- options.AddAdditionalCapability(MobileCapabilityType.PlatformName, MobilePlatform.MacOS);
- options.AddAdditionalCapability(MobileCapabilityType.AutomationName, "mac2");
- options.AddAdditionalCapability("appium:showServerLogs", true);
+ options.AddAdditionalAppiumOption("appium:bundleId", TestAppBundleId);
+ options.AddAdditionalAppiumOption("appium:showServerLogs", true);
+ options.AutomationName = "mac2";
+ options.PlatformName = MobilePlatform.MacOS;
}
- public AppiumDriver Session { get; }
+ public AppiumDriver Session { get; }
public void Dispose()
{
diff --git a/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs b/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs
index 99c30085d6..6b52c8b963 100644
--- a/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs
@@ -12,40 +12,40 @@ using Xunit;
namespace Avalonia.IntegrationTests.Appium
{
public record class WindowChrome(
- AppiumWebElement? Close,
- AppiumWebElement? Minimize,
- AppiumWebElement? Maximize,
- AppiumWebElement? FullScreen);
+ AppiumElement? Close,
+ AppiumElement? Minimize,
+ AppiumElement? Maximize,
+ AppiumElement? FullScreen);
internal static class ElementExtensions
{
- public static IReadOnlyList GetChildren(this AppiumWebElement element) =>
- element.FindElementsByXPath("*/*");
+ public static IReadOnlyList GetChildren(this AppiumElement element) =>
+ element.FindElements(MobileBy.XPath("*/*"));
- public static WindowChrome GetChromeButtons(this AppiumWebElement window)
+ public static WindowChrome GetChromeButtons(this AppiumElement window)
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
- var closeButton = window.FindElementsByAccessibilityId("_XCUI:CloseWindow").FirstOrDefault();
- var fullscreenButton = window.FindElementsByAccessibilityId("_XCUI:FullScreenWindow").FirstOrDefault();
- var minimizeButton = window.FindElementsByAccessibilityId("_XCUI:MinimizeWindow").FirstOrDefault();
- var zoomButton = window.FindElementsByAccessibilityId("_XCUI:ZoomWindow").FirstOrDefault();
+ var closeButton = window.FindElements(MobileBy.AccessibilityId("_XCUI:CloseWindow")).FirstOrDefault();
+ var fullscreenButton = window.FindElements(MobileBy.AccessibilityId("_XCUI:FullScreenWindow")).FirstOrDefault();
+ var minimizeButton = window.FindElements(MobileBy.AccessibilityId("_XCUI:MinimizeWindow")).FirstOrDefault();
+ var zoomButton = window.FindElements(MobileBy.AccessibilityId("_XCUI:ZoomWindow")).FirstOrDefault();
return new(closeButton, minimizeButton, zoomButton, fullscreenButton);
}
throw new NotSupportedException("GetChromeButtons not supported on this platform.");
}
- public static string GetComboBoxValue(this AppiumWebElement element)
+ public static string GetComboBoxValue(this AppiumElement element)
{
return RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ?
element.Text :
element.GetAttribute("value");
}
- public static string GetName(this AppiumWebElement element) => GetAttribute(element, "Name", "title");
+ public static string GetName(this AppiumElement element) => GetAttribute(element, "Name", "title");
- public static bool? GetIsChecked(this AppiumWebElement element) =>
+ public static bool? GetIsChecked(this AppiumElement element) =>
GetAttribute(element, "Toggle.ToggleState", "value") switch
{
"0" => false,
@@ -54,11 +54,11 @@ namespace Avalonia.IntegrationTests.Appium
_ => throw new ArgumentOutOfRangeException($"Unexpected IsChecked value.")
};
- public static bool GetIsFocused(this AppiumWebElement element)
+ public static bool GetIsFocused(this AppiumElement element)
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
- var active = element.WrappedDriver.SwitchTo().ActiveElement() as AppiumWebElement;
+ var active = element.WrappedDriver.SwitchTo().ActiveElement() as AppiumElement;
return element.Id == active?.Id;
}
else
@@ -75,7 +75,7 @@ namespace Avalonia.IntegrationTests.Appium
///
/// An object which when disposed will cause the newly opened window to close.
///
- public static IDisposable OpenWindowWithClick(this AppiumWebElement element)
+ public static IDisposable OpenWindowWithClick(this AppiumElement element)
{
var session = element.WrappedDriver;
@@ -83,7 +83,7 @@ namespace Avalonia.IntegrationTests.Appium
{
var oldHandle = session.CurrentWindowHandle;
var oldHandles = session.WindowHandles.ToList();
- var oldChildWindows = session.FindElements(By.XPath("//Window"));
+ var oldChildWindows = session.FindElements(MobileBy.XPath("//Window"));
element.Click();
@@ -105,7 +105,7 @@ namespace Avalonia.IntegrationTests.Appium
// If a new window handle hasn't been added to the session then it's likely
// that a child window was opened. These don't appear in session.WindowHandles
// so we have to use an XPath query to get hold of it.
- var newChildWindows = session.FindElements(By.XPath("//Window"));
+ var newChildWindows = session.FindElements(MobileBy.XPath("//Window"));
var childWindow = Assert.Single(newChildWindows.Except(oldChildWindows));
return Disposable.Create(() =>
@@ -116,7 +116,7 @@ namespace Avalonia.IntegrationTests.Appium
}
else
{
- var oldWindows = session.FindElements(By.XPath("/XCUIElementTypeApplication/XCUIElementTypeWindow"));
+ var oldWindows = session.FindElements(MobileBy.XPath("/XCUIElementTypeApplication/XCUIElementTypeWindow"));
var oldWindowTitles = oldWindows.ToDictionary(x => x.Text);
element.Click();
@@ -124,7 +124,7 @@ namespace Avalonia.IntegrationTests.Appium
// Wait for animations to run.
Thread.Sleep(1000);
- var newWindows = session.FindElements(By.XPath("/XCUIElementTypeApplication/XCUIElementTypeWindow"));
+ var newWindows = session.FindElements(MobileBy.XPath("/XCUIElementTypeApplication/XCUIElementTypeWindow"));
// Try to find the new window by looking for a window with a title that didn't exist before the button
// was clicked. Sometimes it seems that when a window becomes fullscreen, all other windows in the
@@ -141,18 +141,18 @@ namespace Avalonia.IntegrationTests.Appium
{
// TODO: We should be able to use Cmd+W here but Avalonia apps don't seem to have this shortcut
// set up by default.
- var windows = session.FindElements(By.XPath("/XCUIElementTypeApplication/XCUIElementTypeWindow"));
+ var windows = session.FindElements(MobileBy.XPath("/XCUIElementTypeApplication/XCUIElementTypeWindow"));
var text = windows.Select(x => x.Text).ToList();
- var newWindow = session.FindElements(By.XPath("/XCUIElementTypeApplication/XCUIElementTypeWindow"))
+ var newWindow = session.FindElements(MobileBy.XPath("/XCUIElementTypeApplication/XCUIElementTypeWindow"))
.First(x => x.Text == newWindowTitle);
- var close = ((AppiumWebElement)newWindow).FindElementByAccessibilityId("_XCUI:CloseWindow");
+ var close = ((AppiumElement)newWindow).FindElement(MobileBy.AccessibilityId("_XCUI:CloseWindow"));
close!.Click();
Thread.Sleep(1000);
});
}
}
- public static void SendClick(this AppiumWebElement element)
+ public static void SendClick(this AppiumElement element)
{
// The Click() method seems to correspond to accessibilityPerformPress on macOS but certain controls
// such as list items don't support this action, so instead simulate a physical click as VoiceOver
@@ -160,12 +160,12 @@ namespace Avalonia.IntegrationTests.Appium
new Actions(element.WrappedDriver).MoveToElement(element).Click().Perform();
}
- public static void MovePointerOver(this AppiumWebElement element)
+ public static void MovePointerOver(this AppiumElement element)
{
new Actions(element.WrappedDriver).MoveToElement(element).Perform();
}
- public static string GetAttribute(AppiumWebElement element, string windows, string macOS)
+ public static string GetAttribute(AppiumElement element, string windows, string macOS)
{
return element.GetAttribute(RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? windows : macOS);
}
diff --git a/tests/Avalonia.IntegrationTests.Appium/GestureTests.cs b/tests/Avalonia.IntegrationTests.Appium/GestureTests.cs
index 775ee723cb..c33eb83939 100644
--- a/tests/Avalonia.IntegrationTests.Appium/GestureTests.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/GestureTests.cs
@@ -1,5 +1,6 @@
using System;
using System.Threading;
+using OpenQA.Selenium;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Interactions;
using Xunit;
@@ -9,24 +10,24 @@ namespace Avalonia.IntegrationTests.Appium
[Collection("Default")]
public class GestureTests
{
- private readonly AppiumDriver _session;
+ private readonly AppiumDriver _session;
public GestureTests(DefaultAppFixture fixture)
{
_session = fixture.Session;
- var tabs = _session.FindElementByAccessibilityId("MainTabs");
- var tab = tabs.FindElementByName("Gestures");
+ var tabs = _session.FindElement(MobileBy.AccessibilityId("MainTabs"));
+ var tab = tabs.FindElement(MobileBy.Name("Gestures"));
tab.Click();
- var clear = _session.FindElementByAccessibilityId("ResetGestures");
+ var clear = _session.FindElement(MobileBy.AccessibilityId("ResetGestures"));
clear.Click();
}
[Fact]
public void Tapped_Is_Raised()
{
- var border = _session.FindElementByAccessibilityId("GestureBorder");
- var lastGesture = _session.FindElementByAccessibilityId("LastGesture");
+ var border = _session.FindElement(MobileBy.AccessibilityId("GestureBorder"));
+ var lastGesture = _session.FindElement(MobileBy.AccessibilityId("LastGesture"));
new Actions(_session).Click(border).Perform();
@@ -36,8 +37,8 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void Tapped_Is_Raised_Slow()
{
- var border = _session.FindElementByAccessibilityId("GestureBorder");
- var lastGesture = _session.FindElementByAccessibilityId("LastGesture");
+ var border = _session.FindElement(MobileBy.AccessibilityId("GestureBorder"));
+ var lastGesture = _session.FindElement(MobileBy.AccessibilityId("LastGesture"));
new Actions(_session).ClickAndHold(border).Perform();
@@ -51,8 +52,8 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void Tapped_Is_Not_Raised_For_Drag()
{
- var border = _session.FindElementByAccessibilityId("GestureBorder");
- var lastGesture = _session.FindElementByAccessibilityId("LastGesture");
+ var border = _session.FindElement(MobileBy.AccessibilityId("GestureBorder"));
+ var lastGesture = _session.FindElement(MobileBy.AccessibilityId("LastGesture"));
new Actions(_session)
.ClickAndHold(border)
@@ -66,8 +67,8 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void DoubleTapped_Is_Raised()
{
- var border = _session.FindElementByAccessibilityId("GestureBorder");
- var lastGesture = _session.FindElementByAccessibilityId("LastGesture");
+ var border = _session.FindElement(MobileBy.AccessibilityId("GestureBorder"));
+ var lastGesture = _session.FindElement(MobileBy.AccessibilityId("LastGesture"));
new Actions(_session).DoubleClick(border).Perform();
@@ -77,8 +78,8 @@ namespace Avalonia.IntegrationTests.Appium
[PlatformFact(TestPlatforms.Windows | TestPlatforms.Linux)]
public void DoubleTapped_Is_Raised_2()
{
- var border = _session.FindElementByAccessibilityId("GestureBorder");
- var lastGesture = _session.FindElementByAccessibilityId("LastGesture");
+ var border = _session.FindElement(MobileBy.AccessibilityId("GestureBorder"));
+ var lastGesture = _session.FindElement(MobileBy.AccessibilityId("LastGesture"));
new Actions(_session).ClickAndHold(border).Release().Perform();
@@ -101,8 +102,8 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void DoubleTapped_Is_Raised_Not_Raised_If_Too_Slow()
{
- var border = _session.FindElementByAccessibilityId("GestureBorder");
- var lastGesture = _session.FindElementByAccessibilityId("LastGesture");
+ var border = _session.FindElement(MobileBy.AccessibilityId("GestureBorder"));
+ var lastGesture = _session.FindElement(MobileBy.AccessibilityId("LastGesture"));
new Actions(_session).ClickAndHold(border).Release().Perform();
@@ -117,8 +118,8 @@ namespace Avalonia.IntegrationTests.Appium
public void DoubleTapped_Is_Raised_After_Control_Changes()
{
// #8733
- var border = _session.FindElementByAccessibilityId("GestureBorder");
- var lastGesture = _session.FindElementByAccessibilityId("LastGesture");
+ var border = _session.FindElement(MobileBy.AccessibilityId("GestureBorder"));
+ var lastGesture = _session.FindElement(MobileBy.AccessibilityId("LastGesture"));
new Actions(_session)
.MoveToElement(border)
@@ -135,8 +136,8 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void RightTapped_Is_Raised()
{
- var border = _session.FindElementByAccessibilityId("GestureBorder");
- var lastGesture = _session.FindElementByAccessibilityId("LastGesture");
+ var border = _session.FindElement(MobileBy.AccessibilityId("GestureBorder"));
+ var lastGesture = _session.FindElement(MobileBy.AccessibilityId("LastGesture"));
new Actions(_session).ContextClick(border).Perform();
@@ -146,8 +147,8 @@ namespace Avalonia.IntegrationTests.Appium
[PlatformFact(TestPlatforms.MacOS)]
public void RightTapped_Is_Raised_2()
{
- var border = _session.FindElementByAccessibilityId("GestureBorder");
- var lastGesture = _session.FindElementByAccessibilityId("LastGesture");
+ var border = _session.FindElement(MobileBy.AccessibilityId("GestureBorder"));
+ var lastGesture = _session.FindElement(MobileBy.AccessibilityId("LastGesture"));
var device = new PointerInputDevice(PointerKind.Mouse);
var b = new ActionBuilder();
@@ -163,8 +164,8 @@ namespace Avalonia.IntegrationTests.Appium
[PlatformFact(TestPlatforms.MacOS)]
public void RightTapped_Is_Not_Raised_For_Drag()
{
- var border = _session.FindElementByAccessibilityId("GestureBorder");
- var lastGesture = _session.FindElementByAccessibilityId("LastGesture");
+ var border = _session.FindElement(MobileBy.AccessibilityId("GestureBorder"));
+ var lastGesture = _session.FindElement(MobileBy.AccessibilityId("LastGesture"));
var device = new PointerInputDevice(PointerKind.Mouse);
var b = new ActionBuilder();
diff --git a/tests/Avalonia.IntegrationTests.Appium/ListBoxTests.cs b/tests/Avalonia.IntegrationTests.Appium/ListBoxTests.cs
index 5c81c20af1..c6d5cb9a47 100644
--- a/tests/Avalonia.IntegrationTests.Appium/ListBoxTests.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/ListBoxTests.cs
@@ -9,14 +9,14 @@ namespace Avalonia.IntegrationTests.Appium
[Collection("Default")]
public class ListBoxTests
{
- private readonly AppiumDriver _session;
+ private readonly AppiumDriver _session;
public ListBoxTests(DefaultAppFixture fixture)
{
_session = fixture.Session;
- var tabs = _session.FindElementByAccessibilityId("MainTabs");
- var tab = tabs.FindElementByName("ListBox");
+ var tabs = _session.FindElement(MobileBy.AccessibilityId("MainTabs"));
+ var tab = tabs.FindElement(MobileBy.Name("ListBox"));
tab.Click();
}
@@ -24,8 +24,8 @@ namespace Avalonia.IntegrationTests.Appium
public void Can_Select_Item_By_Clicking()
{
var listBox = GetTarget();
- var item2 = listBox.FindElementByName("Item 2");
- var item4 = listBox.FindElementByName("Item 4");
+ var item2 = listBox.FindElement(MobileBy.Name("Item 2"));
+ var item4 = listBox.FindElement(MobileBy.Name("Item 4"));
Assert.False(item2.Selected);
Assert.False(item4.Selected);
@@ -43,8 +43,8 @@ namespace Avalonia.IntegrationTests.Appium
public void Can_Select_Items_By_Ctrl_Clicking()
{
var listBox = GetTarget();
- var item2 = listBox.FindElementByName("Item 2");
- var item4 = listBox.FindElementByName("Item 4");
+ var item2 = listBox.FindElement(MobileBy.Name("Item 2"));
+ var item4 = listBox.FindElement(MobileBy.Name("Item 4"));
Assert.False(item2.Selected);
Assert.False(item4.Selected);
@@ -65,9 +65,9 @@ namespace Avalonia.IntegrationTests.Appium
public void Can_Select_Range_By_Shift_Clicking()
{
var listBox = GetTarget();
- var item2 = listBox.FindElementByName("Item 2");
- var item3 = listBox.FindElementByName("Item 3");
- var item4 = listBox.FindElementByName("Item 4");
+ var item2 = listBox.FindElement(MobileBy.Name("Item 2"));
+ var item3 = listBox.FindElement(MobileBy.Name("Item 3"));
+ var item4 = listBox.FindElement(MobileBy.Name("Item 4"));
Assert.False(item2.Selected);
Assert.False(item3.Selected);
@@ -94,10 +94,10 @@ namespace Avalonia.IntegrationTests.Appium
Assert.True(children.Count < 100);
}
- private AppiumWebElement GetTarget()
+ private AppiumElement GetTarget()
{
- _session.FindElementByAccessibilityId("ListBoxSelectionClear").Click();
- return _session.FindElementByAccessibilityId("BasicListBox");
+ _session.FindElement(MobileBy.AccessibilityId("ListBoxSelectionClear")).Click();
+ return _session.FindElement(MobileBy.AccessibilityId("BasicListBox"));
}
}
}
diff --git a/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs b/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs
index 5f57dfbc19..2fa58fbe87 100644
--- a/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs
@@ -9,51 +9,51 @@ namespace Avalonia.IntegrationTests.Appium
[Collection("Default")]
public abstract class MenuTests
{
- private readonly AppiumDriver _session;
+ private readonly AppiumDriver _session;
public MenuTests(DefaultAppFixture fixture)
{
_session = fixture.Session;
- var tabs = _session.FindElementByAccessibilityId("MainTabs");
- var tab = tabs.FindElementByName("Menu");
+ var tabs = _session.FindElement(MobileBy.AccessibilityId("MainTabs"));
+ var tab = tabs.FindElement(MobileBy.Name("Menu"));
tab.Click();
- var reset = _session.FindElementByAccessibilityId("MenuClickedMenuItemReset");
+ var reset = _session.FindElement(MobileBy.AccessibilityId("MenuClickedMenuItemReset"));
reset.Click();
- var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ var clickedMenuItem = _session.FindElement(MobileBy.AccessibilityId("ClickedMenuItem"));
Assert.Equal("None", clickedMenuItem.Text);
}
[Fact]
public void Click_Child()
{
- var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
+ var rootMenuItem = _session.FindElement(MobileBy.AccessibilityId("RootMenuItem"));
rootMenuItem.SendClick();
- var childMenuItem = _session.FindElementByAccessibilityId("Child1MenuItem");
+ var childMenuItem = _session.FindElement(MobileBy.AccessibilityId("Child1MenuItem"));
childMenuItem.SendClick();
- var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ var clickedMenuItem = _session.FindElement(MobileBy.AccessibilityId("ClickedMenuItem"));
Assert.Equal("_Child 1", clickedMenuItem.Text);
}
[Fact]
public void Click_Grandchild()
{
- var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
+ var rootMenuItem = _session.FindElement(MobileBy.AccessibilityId("RootMenuItem"));
rootMenuItem.SendClick();
- var childMenuItem = _session.FindElementByAccessibilityId("Child2MenuItem");
+ var childMenuItem = _session.FindElement(MobileBy.AccessibilityId("Child2MenuItem"));
childMenuItem.SendClick();
- var grandchildMenuItem = _session.FindElementByAccessibilityId("GrandchildMenuItem");
+ var grandchildMenuItem = _session.FindElement(MobileBy.AccessibilityId("GrandchildMenuItem"));
grandchildMenuItem.SendClick();
- var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ var clickedMenuItem = _session.FindElement(MobileBy.AccessibilityId("ClickedMenuItem"));
Assert.Equal("_Grandchild", clickedMenuItem.Text);
}
@@ -67,7 +67,7 @@ namespace Avalonia.IntegrationTests.Appium
.SendKeys(Keys.Down + Keys.Enter)
.Perform();
- var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ var clickedMenuItem = _session.FindElement(MobileBy.AccessibilityId("ClickedMenuItem"));
Assert.Equal("_Child 1", clickedMenuItem.Text);
}
@@ -81,7 +81,7 @@ namespace Avalonia.IntegrationTests.Appium
.SendKeys(Keys.Down + Keys.Down + Keys.Right + Keys.Enter)
.Perform();
- var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ var clickedMenuItem = _session.FindElement(MobileBy.AccessibilityId("ClickedMenuItem"));
Assert.Equal("_Grandchild", clickedMenuItem.Text);
}
@@ -95,7 +95,7 @@ namespace Avalonia.IntegrationTests.Appium
.SendKeys("rc")
.Perform();
- var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ var clickedMenuItem = _session.FindElement(MobileBy.AccessibilityId("ClickedMenuItem"));
Assert.Equal("_Child 1", clickedMenuItem.Text);
}
@@ -109,14 +109,14 @@ namespace Avalonia.IntegrationTests.Appium
.SendKeys("rhg")
.Perform();
- var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ var clickedMenuItem = _session.FindElement(MobileBy.AccessibilityId("ClickedMenuItem"));
Assert.Equal("_Grandchild", clickedMenuItem.Text);
}
[PlatformFact(TestPlatforms.Windows)]
public void Select_Child_With_Click_Arrow_Keys()
{
- var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
+ var rootMenuItem = _session.FindElement(MobileBy.AccessibilityId("RootMenuItem"));
rootMenuItem.SendClick();
MovePointerOutOfTheWay();
@@ -125,14 +125,14 @@ namespace Avalonia.IntegrationTests.Appium
.SendKeys(Keys.Down + Keys.Enter)
.Perform();
- var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ var clickedMenuItem = _session.FindElement(MobileBy.AccessibilityId("ClickedMenuItem"));
Assert.Equal("_Child 1", clickedMenuItem.Text);
}
[PlatformFact(TestPlatforms.Windows)]
public void Select_Grandchild_With_Click_Arrow_Keys()
{
- var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
+ var rootMenuItem = _session.FindElement(MobileBy.AccessibilityId("RootMenuItem"));
rootMenuItem.SendClick();
MovePointerOutOfTheWay();
@@ -141,18 +141,18 @@ namespace Avalonia.IntegrationTests.Appium
.SendKeys(Keys.Down + Keys.Down + Keys.Right + Keys.Enter)
.Perform();
- var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ var clickedMenuItem = _session.FindElement(MobileBy.AccessibilityId("ClickedMenuItem"));
Assert.Equal("_Grandchild", clickedMenuItem.Text);
}
[PlatformFact(TestPlatforms.Windows)]
public void Child_AcceleratorKey()
{
- var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
+ var rootMenuItem = _session.FindElement(MobileBy.AccessibilityId("RootMenuItem"));
rootMenuItem.SendClick();
- var childMenuItem = _session.FindElementByAccessibilityId("Child1MenuItem");
+ var childMenuItem = _session.FindElement(MobileBy.AccessibilityId("Child1MenuItem"));
Assert.Equal("Ctrl+O", childMenuItem.GetAttribute("AcceleratorKey"));
}
@@ -161,12 +161,12 @@ namespace Avalonia.IntegrationTests.Appium
public void PointerOver_Does_Not_Steal_Focus()
{
// Issue #7906
- var textBox = _session.FindElementByAccessibilityId("MenuFocusTest");
+ var textBox = _session.FindElement(MobileBy.AccessibilityId("MenuFocusTest"));
textBox.Click();
Assert.True(textBox.GetIsFocused());
- var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
+ var rootMenuItem = _session.FindElement(MobileBy.AccessibilityId("RootMenuItem"));
rootMenuItem.MovePointerOver();
Assert.True(textBox.GetIsFocused());
@@ -177,8 +177,8 @@ namespace Avalonia.IntegrationTests.Appium
// Move the pointer to the menu tab item so that it's not over the menu in preparation
// for key press tests. This prevents the mouse accidentially selecting the wrong item
// by hovering.
- var tabs = _session.FindElementByAccessibilityId("MainTabs");
- var tab = tabs.FindElementByName("Menu");
+ var tabs = _session.FindElement(MobileBy.AccessibilityId("MainTabs"));
+ var tab = tabs.FindElement(MobileBy.Name("Menu"));
tab.MovePointerOver();
}
diff --git a/tests/Avalonia.IntegrationTests.Appium/NativeMenuTests.cs b/tests/Avalonia.IntegrationTests.Appium/NativeMenuTests.cs
index 290ebf70e6..7b1f985e05 100644
--- a/tests/Avalonia.IntegrationTests.Appium/NativeMenuTests.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/NativeMenuTests.cs
@@ -1,4 +1,5 @@
using System.Threading;
+using OpenQA.Selenium;
using OpenQA.Selenium.Appium;
using Xunit;
@@ -7,29 +8,29 @@ namespace Avalonia.IntegrationTests.Appium
[Collection("Default")]
public class NativeMenuTests
{
- private readonly AppiumDriver _session;
+ private readonly AppiumDriver _session;
public NativeMenuTests(DefaultAppFixture fixture)
{
_session = fixture.Session;
- var tabs = _session.FindElementByAccessibilityId("MainTabs");
- var tab = tabs.FindElementByName("Automation");
+ var tabs = _session.FindElement(MobileBy.AccessibilityId("MainTabs"));
+ var tab = tabs.FindElement(MobileBy.Name("Automation"));
tab.Click();
}
[PlatformFact(TestPlatforms.MacOS)]
public void MacOS_View_Menu_Select_Button_Tab()
{
- var tabs = _session.FindElementByAccessibilityId("MainTabs");
- var buttonTab = tabs.FindElementByName("Button");
- var menuBar = _session.FindElementByXPath("/XCUIElementTypeApplication/XCUIElementTypeMenuBar");
- var viewMenu = menuBar.FindElementByName("View");
+ var tabs = _session.FindElement(MobileBy.AccessibilityId("MainTabs"));
+ var buttonTab = tabs.FindElement(MobileBy.Name("Button"));
+ var menuBar = _session.FindElement(MobileBy.XPath("/XCUIElementTypeApplication/XCUIElementTypeMenuBar"));
+ var viewMenu = menuBar.FindElement(MobileBy.Name("View"));
Assert.False(buttonTab.Selected);
viewMenu.Click();
- var buttonMenu = viewMenu.FindElementByName("Button");
+ var buttonMenu = viewMenu.FindElement(MobileBy.Name("Button"));
buttonMenu.Click();
Assert.True(buttonTab.Selected);
@@ -38,14 +39,14 @@ namespace Avalonia.IntegrationTests.Appium
[PlatformFact(TestPlatforms.Windows)]
public void Win32_View_Menu_Select_Button_Tab()
{
- var tabs = _session.FindElementByAccessibilityId("MainTabs");
- var buttonTab = tabs.FindElementByName("Button");
- var viewMenu = _session.FindElementByXPath("//MenuItem[@Name='View']");
+ var tabs = _session.FindElement(MobileBy.AccessibilityId("MainTabs"));
+ var buttonTab = tabs.FindElement(MobileBy.Name("Button"));
+ var viewMenu = _session.FindElement(MobileBy.XPath("//MenuItem[@Name='View']"));
Assert.False(buttonTab.Selected);
viewMenu.Click();
- var buttonMenu = viewMenu.FindElementByName("Button");
+ var buttonMenu = viewMenu.FindElement(MobileBy.Name("Button"));
buttonMenu.Click();
Assert.True(buttonTab.Selected);
@@ -54,42 +55,42 @@ namespace Avalonia.IntegrationTests.Appium
[PlatformFact(TestPlatforms.MacOS)]
public void MacOS_Sanitizes_Access_Key_Markers_When_Included_In_Menu_Title()
{
- var menuBar = _session.FindElementByXPath("/XCUIElementTypeApplication/XCUIElementTypeMenuBar");
+ var menuBar = _session.FindElement(MobileBy.XPath("/XCUIElementTypeApplication/XCUIElementTypeMenuBar"));
- Assert.True(menuBar.FindElementsByName("_Options").Count == 0);
- Assert.True(menuBar.FindElementsByName("Options").Count == 1);
+ Assert.True(menuBar.FindElements(MobileBy.Name("_Options")).Count == 0);
+ Assert.True(menuBar.FindElements(MobileBy.Name("Options")).Count == 1);
}
[PlatformFact(TestPlatforms.Windows)]
public void Win32_Avalonia_Menu_Has_ToolTip_If_Defined()
{
- var viewMenu = _session.FindElementByXPath("//MenuItem[@Name='View']");
+ var viewMenu = _session.FindElement(MobileBy.XPath("//MenuItem[@Name='View']"));
viewMenu.Click();
- var buttonMenuItem = viewMenu.FindElementByName("Button");
+ var buttonMenuItem = viewMenu.FindElement(MobileBy.Name("Button"));
buttonMenuItem.MovePointerOver();
// Wait for tooltip to open.
Thread.Sleep(2000);
- var toolTipCandidates = _session.FindElementsByClassName("TextBlock");
+ var toolTipCandidates = _session.FindElements(MobileBy.ClassName("TextBlock"));
Assert.Contains(toolTipCandidates, x => x.Text == "Tip:Button");
}
[PlatformFact(TestPlatforms.MacOS, Skip = "Flaky test")]
public void MacOS_Native_Menu_Has_ToolTip_If_Defined()
{
- var menuBar = _session.FindElementByXPath("/XCUIElementTypeApplication/XCUIElementTypeMenuBar");
- var viewMenu = menuBar.FindElementByName("View");
+ var menuBar = _session.FindElement(MobileBy.XPath("/XCUIElementTypeApplication/XCUIElementTypeMenuBar"));
+ var viewMenu = menuBar.FindElement(MobileBy.Name("View"));
viewMenu.Click();
- var buttonMenuItem = viewMenu.FindElementByName("Button");
+ var buttonMenuItem = viewMenu.FindElement(MobileBy.Name("Button"));
buttonMenuItem.MovePointerOver();
// Wait for tooltip to open.
Thread.Sleep(4000);
- var toolTipCandidates = _session.FindElementsByClassName("XCUIElementTypeStaticText");
+ var toolTipCandidates = _session.FindElements(MobileBy.ClassName("XCUIElementTypeStaticText"));
Assert.Contains(toolTipCandidates, x => x.Text == "Tip:Button");
}
}
diff --git a/tests/Avalonia.IntegrationTests.Appium/OverlayPopupsAppFixture.cs b/tests/Avalonia.IntegrationTests.Appium/OverlayPopupsAppFixture.cs
index 1f8646888d..65fceabfc3 100644
--- a/tests/Avalonia.IntegrationTests.Appium/OverlayPopupsAppFixture.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/OverlayPopupsAppFixture.cs
@@ -7,13 +7,13 @@ namespace Avalonia.IntegrationTests.Appium
protected override void ConfigureWin32Options(AppiumOptions options)
{
base.ConfigureWin32Options(options);
- options.AddAdditionalCapability("appArguments", "--overlayPopups");
+ options.AddAdditionalAppiumOption("appArguments", "--overlayPopups");
}
protected override void ConfigureMacOptions(AppiumOptions options)
{
base.ConfigureMacOptions(options);
- options.AddAdditionalCapability("appium:arguments", new[] { "--overlayPopups" });
+ options.AddAdditionalAppiumOption("appium:arguments", new[] { "--overlayPopups" });
}
}
}
diff --git a/tests/Avalonia.IntegrationTests.Appium/RadioButtonTests.cs b/tests/Avalonia.IntegrationTests.Appium/RadioButtonTests.cs
index 26a8577cb0..46af701e29 100644
--- a/tests/Avalonia.IntegrationTests.Appium/RadioButtonTests.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/RadioButtonTests.cs
@@ -1,4 +1,5 @@
-using OpenQA.Selenium.Appium;
+using OpenQA.Selenium;
+using OpenQA.Selenium.Appium;
using Xunit;
namespace Avalonia.IntegrationTests.Appium
@@ -6,21 +7,21 @@ namespace Avalonia.IntegrationTests.Appium
[Collection("Default")]
public class RadioButtonTests
{
- private readonly AppiumDriver _session;
+ private readonly AppiumDriver _session;
public RadioButtonTests(DefaultAppFixture fixture)
{
_session = fixture.Session;
- var tabs = _session.FindElementByAccessibilityId("MainTabs");
- tabs.FindElementByName("RadioButton").Click();
+ var tabs = _session.FindElement(MobileBy.AccessibilityId("MainTabs"));
+ tabs.FindElement(MobileBy.Name("RadioButton")).Click();
}
[Fact]
public void RadioButton_IsChecked_True_When_Clicked()
{
- var button = _session.FindElementByAccessibilityId("BasicRadioButton");
+ var button = _session.FindElement(MobileBy.AccessibilityId("BasicRadioButton"));
Assert.False(button.GetIsChecked());
button.Click();
Assert.True(button.GetIsChecked());
@@ -29,8 +30,8 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void ThreeState_RadioButton_IsChecked_False_When_Other_ThreeState_RadioButton_Checked()
{
- var button1 = _session.FindElementByAccessibilityId("ThreeStatesRadioButton1");
- var button2 = _session.FindElementByAccessibilityId("ThreeStatesRadioButton2");
+ var button1 = _session.FindElement(MobileBy.AccessibilityId("ThreeStatesRadioButton1"));
+ var button2 = _session.FindElement(MobileBy.AccessibilityId("ThreeStatesRadioButton2"));
Assert.True(button1.GetIsChecked());
Assert.False(button2.GetIsChecked());
button2.Click();
diff --git a/tests/Avalonia.IntegrationTests.Appium/ScrollBarTests.cs b/tests/Avalonia.IntegrationTests.Appium/ScrollBarTests.cs
index 9d5df2fb46..e02248eb13 100644
--- a/tests/Avalonia.IntegrationTests.Appium/ScrollBarTests.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/ScrollBarTests.cs
@@ -1,4 +1,5 @@
-using OpenQA.Selenium.Appium;
+using OpenQA.Selenium;
+using OpenQA.Selenium.Appium;
using Xunit;
namespace Avalonia.IntegrationTests.Appium
@@ -6,21 +7,21 @@ namespace Avalonia.IntegrationTests.Appium
[Collection("Default")]
public class ScrollBarTests
{
- private readonly AppiumDriver _session;
+ private readonly AppiumDriver _session;
public ScrollBarTests(DefaultAppFixture fixture)
{
_session = fixture.Session;
- var tabs = _session.FindElementByAccessibilityId("MainTabs");
- var tab = tabs.FindElementByName("ScrollBar");
+ var tabs = _session.FindElement(MobileBy.AccessibilityId("MainTabs"));
+ var tab = tabs.FindElement(MobileBy.Name("ScrollBar"));
tab.Click();
}
[Fact]
public void ScrollBar_Increases_Value_By_LargeChange_When_IncreaseButton_Is_Clicked()
{
- var button = _session.FindElementByAccessibilityId("MyScrollBar");
+ var button = _session.FindElement(MobileBy.AccessibilityId("MyScrollBar"));
Assert.True(double.Parse(button.Text) == 20);
button.Click();
diff --git a/tests/Avalonia.IntegrationTests.Appium/SliderTests.cs b/tests/Avalonia.IntegrationTests.Appium/SliderTests.cs
index fa83ee199c..6d304fa449 100644
--- a/tests/Avalonia.IntegrationTests.Appium/SliderTests.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/SliderTests.cs
@@ -1,5 +1,6 @@
using System;
using System.Globalization;
+using OpenQA.Selenium;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Interactions;
using Xunit;
@@ -9,32 +10,32 @@ namespace Avalonia.IntegrationTests.Appium
[Collection("Default")]
public class SliderTests
{
- private readonly AppiumDriver _session;
+ private readonly AppiumDriver _session;
public SliderTests(DefaultAppFixture fixture)
{
_session = fixture.Session;
- var tabs = _session.FindElementByAccessibilityId("MainTabs");
- var tab = tabs.FindElementByName("Slider");
+ var tabs = _session.FindElement(MobileBy.AccessibilityId("MainTabs"));
+ var tab = tabs.FindElement(MobileBy.Name("Slider"));
tab.Click();
- var reset = _session.FindElementByAccessibilityId("ResetSliders");
+ var reset = _session.FindElement(MobileBy.AccessibilityId("ResetSliders"));
reset.Click();
}
[Fact]
public void Horizontal_Changes_Value_Dragging_Thumb_Right()
{
- var slider = _session.FindElementByAccessibilityId("HorizontalSlider");
- var thumb = slider.FindElementByAccessibilityId("thumb");
+ var slider = _session.FindElement(MobileBy.AccessibilityId("HorizontalSlider"));
+ var thumb = slider.FindElement(MobileBy.AccessibilityId("thumb"));
var initialThumbRect = thumb.Rect;
new Actions(_session).ClickAndHold(thumb).MoveByOffset(100, 0).Release().Perform();
var value = Math.Round(double.Parse(slider.Text, CultureInfo.InvariantCulture));
var boundValue = double.Parse(
- _session.FindElementByAccessibilityId("HorizontalSliderValue").Text,
+ _session.FindElement(MobileBy.AccessibilityId("HorizontalSliderValue")).Text,
CultureInfo.InvariantCulture);
Assert.True(value > 50);
@@ -47,15 +48,15 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void Horizontal_Changes_Value_Dragging_Thumb_Left()
{
- var slider = _session.FindElementByAccessibilityId("HorizontalSlider");
- var thumb = slider.FindElementByAccessibilityId("thumb");
+ var slider = _session.FindElement(MobileBy.AccessibilityId("HorizontalSlider"));
+ var thumb = slider.FindElement(MobileBy.AccessibilityId("thumb"));
var initialThumbRect = thumb.Rect;
new Actions(_session).ClickAndHold(thumb).MoveByOffset(-100, 0).Release().Perform();
var value = Math.Round(double.Parse(slider.Text, CultureInfo.InvariantCulture));
var boundValue = double.Parse(
- _session.FindElementByAccessibilityId("HorizontalSliderValue").Text,
+ _session.FindElement(MobileBy.AccessibilityId("HorizontalSliderValue")).Text,
CultureInfo.InvariantCulture);
Assert.True(value < 50);
@@ -68,15 +69,15 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void Horizontal_Changes_Value_When_Clicking_Increase_Button()
{
- var slider = _session.FindElementByAccessibilityId("HorizontalSlider");
- var thumb = slider.FindElementByAccessibilityId("thumb");
+ var slider = _session.FindElement(MobileBy.AccessibilityId("HorizontalSlider"));
+ var thumb = slider.FindElement(MobileBy.AccessibilityId("thumb"));
var initialThumbRect = thumb.Rect;
- new Actions(_session).MoveToElement(slider, 100, 0, MoveToElementOffsetOrigin.Center).Click().Perform();
+ new Actions(_session).MoveToElement(slider, 100, 0).Click().Perform();
var value = Math.Round(double.Parse(slider.Text, CultureInfo.InvariantCulture));
var boundValue = double.Parse(
- _session.FindElementByAccessibilityId("HorizontalSliderValue").Text,
+ _session.FindElement(MobileBy.AccessibilityId("HorizontalSliderValue")).Text,
CultureInfo.InvariantCulture);
Assert.True(value > 50);
@@ -89,15 +90,15 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void Horizontal_Changes_Value_When_Clicking_Decrease_Button()
{
- var slider = _session.FindElementByAccessibilityId("HorizontalSlider");
- var thumb = slider.FindElementByAccessibilityId("thumb");
+ var slider = _session.FindElement(MobileBy.AccessibilityId("HorizontalSlider"));
+ var thumb = slider.FindElement(MobileBy.AccessibilityId("thumb"));
var initialThumbRect = thumb.Rect;
- new Actions(_session).MoveToElement(slider, -100, 0, MoveToElementOffsetOrigin.Center).Click().Perform();
+ new Actions(_session).MoveToElement(slider, -100, 0).Click().Perform();
var value = Math.Round(double.Parse(slider.Text, CultureInfo.InvariantCulture));
var boundValue = double.Parse(
- _session.FindElementByAccessibilityId("HorizontalSliderValue").Text,
+ _session.FindElement(MobileBy.AccessibilityId("HorizontalSliderValue")).Text,
CultureInfo.InvariantCulture);
Assert.True(value < 50);
diff --git a/tests/Avalonia.IntegrationTests.Appium/WindowTests.cs b/tests/Avalonia.IntegrationTests.Appium/WindowTests.cs
index eece0d4c17..48c3b80641 100644
--- a/tests/Avalonia.IntegrationTests.Appium/WindowTests.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/WindowTests.cs
@@ -15,14 +15,14 @@ namespace Avalonia.IntegrationTests.Appium
[Collection("Default")]
public class WindowTests
{
- private readonly AppiumDriver _session;
+ private readonly AppiumDriver _session;
public WindowTests(DefaultAppFixture fixture)
{
_session = fixture.Session;
- var tabs = _session.FindElementByAccessibilityId("MainTabs");
- var tab = tabs.FindElementByName("Window");
+ var tabs = _session.FindElement(MobileBy.AccessibilityId("MainTabs"));
+ var tab = tabs.FindElement(MobileBy.Name("Window"));
tab.Click();
}
@@ -90,8 +90,8 @@ namespace Avalonia.IntegrationTests.Appium
{
try
{
- _session.FindElementByAccessibilityId("CurrentWindowState").SendClick();
- _session.FindElementByAccessibilityId("WindowStateNormal").SendClick();
+ _session.FindElement(MobileBy.AccessibilityId("CurrentWindowState")).SendClick();
+ _session.FindElement(MobileBy.AccessibilityId("WindowStateNormal")).SendClick();
// Wait for animations to run.
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
@@ -110,12 +110,12 @@ namespace Avalonia.IntegrationTests.Appium
{
using (OpenWindow(new Size(400, 400), ShowWindowMode.NonOwned, WindowStartupLocation.Manual))
{
- var windowState = _session.FindElementByAccessibilityId("CurrentWindowState");
+ var windowState = _session.FindElement(MobileBy.AccessibilityId("CurrentWindowState"));
Assert.Equal("Normal", windowState.GetComboBoxValue());
- var window = _session.FindElements(By.XPath("//Window")).First();
+ var window = _session.FindElements(MobileBy.XPath("//Window")).First();
new Actions(_session)
.KeyDown(Keys.Meta)
@@ -126,7 +126,7 @@ namespace Avalonia.IntegrationTests.Appium
var original = GetWindowInfo();
windowState.Click();
- _session.FindElementByName("Minimized").SendClick();
+ _session.FindElement(MobileBy.Name("Minimized")).SendClick();
new Actions(_session)
.KeyDown(Keys.Alt)
@@ -147,8 +147,8 @@ namespace Avalonia.IntegrationTests.Appium
{
using (OpenWindow(new Size(4000, 2200), ShowWindowMode.NonOwned, WindowStartupLocation.Manual))
{
- var screenRectTextBox = _session.FindElementByAccessibilityId("CurrentClientSize");
- var measuredWithTextBlock = _session.FindElementByAccessibilityId("CurrentMeasuredWithText");
+ var screenRectTextBox = _session.FindElement(MobileBy.AccessibilityId("CurrentClientSize"));
+ var measuredWithTextBlock = _session.FindElement(MobileBy.AccessibilityId("CurrentMeasuredWithText"));
var measuredWithString = measuredWithTextBlock.Text;
var workingAreaString = screenRectTextBox.Text;
@@ -167,17 +167,17 @@ namespace Avalonia.IntegrationTests.Appium
public void ShowMode(ShowWindowMode mode)
{
using var window = OpenWindow(null, mode, WindowStartupLocation.Manual);
- var windowState = _session.FindElementByAccessibilityId("CurrentWindowState");
+ var windowState = _session.FindElement(MobileBy.AccessibilityId("CurrentWindowState"));
var original = GetWindowInfo();
Assert.Equal("Normal", windowState.GetComboBoxValue());
windowState.Click();
- _session.FindElementByAccessibilityId("WindowStateMaximized").SendClick();
+ _session.FindElement(MobileBy.AccessibilityId("WindowStateMaximized")).SendClick();
Assert.Equal("Maximized", windowState.GetComboBoxValue());
windowState.Click();
- _session.FindElementByAccessibilityId("WindowStateNormal").SendClick();
+ _session.FindElement(MobileBy.AccessibilityId("WindowStateNormal")).SendClick();
var current = GetWindowInfo();
Assert.Equal(original.Position, current.Position);
@@ -187,7 +187,7 @@ namespace Avalonia.IntegrationTests.Appium
if (!RuntimeInformation.IsOSPlatform(OSPlatform.OSX) || mode == ShowWindowMode.NonOwned)
{
windowState.Click();
- _session.FindElementByAccessibilityId("WindowStateFullScreen").SendClick();
+ _session.FindElement(MobileBy.AccessibilityId("WindowStateFullScreen")).SendClick();
Assert.Equal("FullScreen", windowState.GetComboBoxValue());
current = GetWindowInfo();
@@ -197,7 +197,7 @@ namespace Avalonia.IntegrationTests.Appium
windowState.SendClick();
- _session.FindElementByAccessibilityId("WindowStateNormal").SendClick();
+ _session.FindElement(MobileBy.AccessibilityId("WindowStateNormal")).SendClick();
current = GetWindowInfo();
Assert.Equal(original.Position, current.Position);
@@ -210,7 +210,7 @@ namespace Avalonia.IntegrationTests.Appium
{
var clientSize = new Size(400, 400);
using var window = OpenWindow(clientSize, ShowWindowMode.NonOwned, WindowStartupLocation.CenterScreen, extendClientArea: true);
- var windowState = _session.FindElementByAccessibilityId("CurrentWindowState");
+ var windowState = _session.FindElement(MobileBy.AccessibilityId("CurrentWindowState"));
var current = GetWindowInfo();
Assert.Equal(current.ClientSize, clientSize);
@@ -219,11 +219,11 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void TransparentWindow()
{
- var showTransparentWindow = _session.FindElementByAccessibilityId("ShowTransparentWindow");
+ var showTransparentWindow = _session.FindElement(MobileBy.AccessibilityId("ShowTransparentWindow"));
showTransparentWindow.Click();
Thread.Sleep(1000);
- var window = _session.FindElementByAccessibilityId("TransparentWindow");
+ var window = _session.FindElement(MobileBy.AccessibilityId("TransparentWindow"));
var screenshot = window.GetScreenshot();
window.Click();
@@ -239,12 +239,12 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void TransparentPopup()
{
- var showTransparentWindow = _session.FindElementByAccessibilityId("ShowTransparentPopup");
+ var showTransparentWindow = _session.FindElement(MobileBy.AccessibilityId("ShowTransparentPopup"));
showTransparentWindow.Click();
Thread.Sleep(1000);
- var window = _session.FindElementByAccessibilityId("TransparentPopupBackground");
- var container = window.FindElementByAccessibilityId("PopupContainer");
+ var window = _session.FindElement(MobileBy.AccessibilityId("TransparentPopupBackground"));
+ var container = window.FindElement(MobileBy.AccessibilityId("PopupContainer"));
var screenshot = container.GetScreenshot();
window.Click();
@@ -268,20 +268,20 @@ namespace Avalonia.IntegrationTests.Appium
{
using (OpenWindow(null, mode, WindowStartupLocation.Manual, canResize: false, extendClientArea: extendClientArea))
{
- var secondaryWindow = GetWindow("SecondaryWindow");
- AppiumWebElement? maximizeButton;
+ var secondaryWindow = GetWindow(_session, "SecondaryWindow");
+ AppiumElement? maximizeButton;
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
maximizeButton = extendClientArea ?
- secondaryWindow.FindElementByXPath("//Button[@Name='Maximize']") :
- secondaryWindow.FindElementByXPath("//TitleBar/Button[2]");
+ secondaryWindow.FindElement(MobileBy.XPath("//Button[@Name='Maximize']")) :
+ secondaryWindow.FindElement(MobileBy.XPath("//TitleBar/Button[2]"));
}
else
{
maximizeButton = mode == ShowWindowMode.NonOwned ?
- secondaryWindow.FindElementByAccessibilityId("_XCUI:FullScreenWindow") :
- secondaryWindow.FindElementByAccessibilityId("_XCUI:ZoomWindow");
+ secondaryWindow.FindElement(MobileBy.AccessibilityId("_XCUI:FullScreenWindow")) :
+ secondaryWindow.FindElement(MobileBy.AccessibilityId("_XCUI:ZoomWindow"));
}
Assert.False(maximizeButton.Enabled);
@@ -375,13 +375,13 @@ namespace Avalonia.IntegrationTests.Appium
bool canResize = true,
bool extendClientArea = false)
{
- var sizeTextBox = _session.FindElementByAccessibilityId("ShowWindowSize");
- var modeComboBox = _session.FindElementByAccessibilityId("ShowWindowMode");
- var locationComboBox = _session.FindElementByAccessibilityId("ShowWindowLocation");
- var stateComboBox = _session.FindElementByAccessibilityId("ShowWindowState");
- var canResizeCheckBox = _session.FindElementByAccessibilityId("ShowWindowCanResize");
- var showButton = _session.FindElementByAccessibilityId("ShowWindow");
- var extendClientAreaCheckBox = _session.FindElementByAccessibilityId("ShowWindowExtendClientAreaToDecorationsHint");
+ var sizeTextBox = _session.FindElement(MobileBy.AccessibilityId("ShowWindowSize"));
+ var modeComboBox = _session.FindElement(MobileBy.AccessibilityId("ShowWindowMode"));
+ var locationComboBox = _session.FindElement(MobileBy.AccessibilityId("ShowWindowLocation"));
+ var stateComboBox = _session.FindElement(MobileBy.AccessibilityId("ShowWindowState"));
+ var canResizeCheckBox = _session.FindElement(MobileBy.AccessibilityId("ShowWindowCanResize"));
+ var showButton = _session.FindElement(MobileBy.AccessibilityId("ShowWindow"));
+ var extendClientAreaCheckBox = _session.FindElement(MobileBy.AccessibilityId("ShowWindowExtendClientAreaToDecorationsHint"));
if (size.HasValue)
sizeTextBox.SendKeys($"{size.Value.Width}, {size.Value.Height}");
@@ -389,19 +389,19 @@ namespace Avalonia.IntegrationTests.Appium
if (modeComboBox.GetComboBoxValue() != mode.ToString())
{
modeComboBox.Click();
- _session.FindElementByName(mode.ToString()).SendClick();
+ _session.FindElement(MobileBy.Name(mode.ToString())).SendClick();
}
if (locationComboBox.GetComboBoxValue() != location.ToString())
{
locationComboBox.Click();
- _session.FindElementByName(location.ToString()).SendClick();
+ _session.FindElement(MobileBy.Name(location.ToString())).SendClick();
}
if (stateComboBox.GetComboBoxValue() != state.ToString())
{
stateComboBox.Click();
- _session.FindElementByAccessibilityId($"ShowWindowState{state}").SendClick();
+ _session.FindElement(MobileBy.AccessibilityId($"ShowWindowState{state}")).SendClick();
}
if (canResizeCheckBox.GetIsChecked() != canResize)
@@ -413,18 +413,18 @@ namespace Avalonia.IntegrationTests.Appium
return showButton.OpenWindowWithClick();
}
- private AppiumWebElement GetWindow(string identifier)
+ internal static AppiumElement GetWindow(AppiumDriver session, string identifier)
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
// The Avalonia a11y tree currently exposes two nested Window elements, this is a bug and should be fixed
// but in the meantime use the `parent::' selector to return the parent "real" window.
- return _session.FindElementByXPath(
- $"XCUIElementTypeWindow//*[@identifier='{identifier}']/parent::XCUIElementTypeWindow");
+ return session.FindElement(MobileBy.XPath(
+ $"XCUIElementTypeWindow//*[@identifier='{identifier}']/parent::XCUIElementTypeWindow"));
}
else
{
- return _session.FindElementByXPath($"//Window[@AutomationId='{identifier}']");
+ return session.FindElement(MobileBy.XPath($"//Window[@AutomationId='{identifier}']"));
}
}
@@ -432,7 +432,7 @@ namespace Avalonia.IntegrationTests.Appium
{
PixelRect? ReadOwnerRect()
{
- var text = _session.FindElementByAccessibilityId("CurrentOwnerRect").Text;
+ var text = _session.FindElement(MobileBy.AccessibilityId("CurrentOwnerRect")).Text;
return !string.IsNullOrWhiteSpace(text) ? PixelRect.Parse(text) : null;
}
@@ -443,13 +443,13 @@ namespace Avalonia.IntegrationTests.Appium
try
{
return new(
- Size.Parse(_session.FindElementByAccessibilityId("CurrentClientSize").Text),
- Size.Parse(_session.FindElementByAccessibilityId("CurrentFrameSize").Text),
- PixelPoint.Parse(_session.FindElementByAccessibilityId("CurrentPosition").Text),
+ Size.Parse(_session.FindElement(MobileBy.AccessibilityId("CurrentClientSize")).Text),
+ Size.Parse(_session.FindElement(MobileBy.AccessibilityId("CurrentFrameSize")).Text),
+ PixelPoint.Parse(_session.FindElement(MobileBy.AccessibilityId("CurrentPosition")).Text),
ReadOwnerRect(),
- PixelRect.Parse(_session.FindElementByAccessibilityId("CurrentScreenRect").Text),
- double.Parse(_session.FindElementByAccessibilityId("CurrentScaling").Text),
- Enum.Parse(_session.FindElementByAccessibilityId("CurrentWindowState").Text));
+ PixelRect.Parse(_session.FindElement(MobileBy.AccessibilityId("CurrentScreenRect")).Text),
+ double.Parse(_session.FindElement(MobileBy.AccessibilityId("CurrentScaling")).Text),
+ Enum.Parse(_session.FindElement(MobileBy.AccessibilityId("CurrentWindowState")).Text));
}
catch (OpenQA.Selenium.NoSuchElementException) when (retry++ < 3)
{
diff --git a/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs b/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs
index 247198b254..b18559ec29 100644
--- a/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs
@@ -14,7 +14,7 @@ namespace Avalonia.IntegrationTests.Appium
[Collection("Default")]
public class WindowTests_MacOS
{
- private readonly AppiumDriver _session;
+ private readonly AppiumDriver _session;
public WindowTests_MacOS(DefaultAppFixture fixture)
{
@@ -26,8 +26,8 @@ namespace Avalonia.IntegrationTests.Appium
{
try
{
- var tabs = _session.FindElementByAccessibilityId("MainTabs");
- var tab = tabs.FindElementByName("Window");
+ var tabs = _session.FindElement(MobileBy.AccessibilityId("MainTabs"));
+ var tab = tabs.FindElement(MobileBy.Name("Window"));
tab.Click();
return;
}
@@ -44,7 +44,7 @@ namespace Avalonia.IntegrationTests.Appium
[PlatformFact(TestPlatforms.MacOS)]
public void WindowOrder_Modal_Dialog_Stays_InFront_Of_Parent()
{
- var mainWindow = _session.FindElementByAccessibilityId("MainWindow");
+ var mainWindow = _session.FindElement(MobileBy.AccessibilityId("MainWindow"));
using (OpenWindow(new PixelSize(200, 100), ShowWindowMode.Modal, WindowStartupLocation.Manual))
{
@@ -83,7 +83,7 @@ namespace Avalonia.IntegrationTests.Appium
public void WindowOrder_Modal_Dialog_Stays_InFront_Of_Parent_When_In_Fullscreen()
{
var mainWindow = GetWindow("MainWindow");
- var fullScreen = mainWindow.FindElementByAccessibilityId("_XCUI:FullScreenWindow");
+ var fullScreen = mainWindow.FindElement(MobileBy.AccessibilityId("_XCUI:FullScreenWindow"));
fullScreen.Click();
@@ -99,14 +99,14 @@ namespace Avalonia.IntegrationTests.Appium
}
finally
{
- _session.FindElementByAccessibilityId("ExitFullscreen").Click();
+ _session.FindElement(MobileBy.AccessibilityId("ExitFullscreen")).Click();
}
}
[PlatformFact(TestPlatforms.MacOS)]
public void WindowOrder_Owned_Dialog_Stays_InFront_Of_Parent()
{
- var mainWindow = _session.FindElementByAccessibilityId("MainWindow");
+ var mainWindow = _session.FindElement(MobileBy.AccessibilityId("MainWindow"));
using (OpenWindow(new PixelSize(200, 100), ShowWindowMode.Owned, WindowStartupLocation.Manual))
{
@@ -119,16 +119,16 @@ namespace Avalonia.IntegrationTests.Appium
[PlatformFact(TestPlatforms.MacOS)]
public void WindowOrder_Owned_Dialog_Stays_InFront_Of_FullScreen_Parent()
{
- var mainWindow = _session.FindElementByAccessibilityId("MainWindow");
+ var mainWindow = _session.FindElement(MobileBy.AccessibilityId("MainWindow"));
// Enter fullscreen
- mainWindow.FindElementByAccessibilityId("EnterFullscreen").Click();
+ mainWindow.FindElement(MobileBy.AccessibilityId("EnterFullscreen")).Click();
// Wait for fullscreen transition.
Thread.Sleep(1000);
// Make sure we entered fullscreen.
- var windowState = mainWindow.FindElementByAccessibilityId("MainWindowState");
+ var windowState = mainWindow.FindElement(MobileBy.AccessibilityId("MainWindowState"));
Assert.Equal("FullScreen", windowState.Text);
// Open child window.
@@ -140,14 +140,14 @@ namespace Avalonia.IntegrationTests.Appium
}
// Exit fullscreen by menu shortcut Command+R
- mainWindow.FindElementByAccessibilityId("ExitFullscreen").Click();
+ mainWindow.FindElement(MobileBy.AccessibilityId("ExitFullscreen")).Click();
// Wait for restore transition.
Thread.Sleep(1000);
// Make sure we exited fullscreen.
- mainWindow = _session.FindElementByAccessibilityId("MainWindow");
- windowState = mainWindow.FindElementByAccessibilityId("MainWindowState");
+ mainWindow = _session.FindElement(MobileBy.AccessibilityId("MainWindow"));
+ windowState = mainWindow.FindElement(MobileBy.AccessibilityId("MainWindowState"));
Assert.Equal("Normal", windowState.Text);
}
@@ -167,21 +167,21 @@ namespace Avalonia.IntegrationTests.Appium
public void Does_Not_Switch_Space_From_FullScreen_To_Main_Desktop_When_FullScreen_Window_Clicked()
{
// Issue #9565
- var mainWindow = _session.FindElementByAccessibilityId("MainWindow");
- AppiumWebElement windowState;
+ var mainWindow = _session.FindElement(MobileBy.AccessibilityId("MainWindow"));
+ AppiumElement windowState;
// Open child window.
using (OpenWindow(new PixelSize(200, 100), ShowWindowMode.Owned, WindowStartupLocation.Manual))
{
// Enter fullscreen
- mainWindow.FindElementByAccessibilityId("EnterFullscreen").Click();
+ mainWindow.FindElement(MobileBy.AccessibilityId("EnterFullscreen")).Click();
// Wait for fullscreen transition.
Thread.Sleep(1000);
// Make sure we entered fullscreen.
- mainWindow = _session.FindElementByAccessibilityId("MainWindow");
- windowState = mainWindow.FindElementByAccessibilityId("MainWindowState");
+ mainWindow = _session.FindElement(MobileBy.AccessibilityId("MainWindow"));
+ windowState = mainWindow.FindElement(MobileBy.AccessibilityId("MainWindowState"));
Assert.Equal("FullScreen", windowState.Text);
// Click on main window
@@ -189,22 +189,22 @@ namespace Avalonia.IntegrationTests.Appium
// Failed here due to #9565: main window is no longer visible as the main space is now shown instead
// of the fullscreen space.
- mainWindow.FindElementByAccessibilityId("ExitFullscreen").Click();
+ mainWindow.FindElement(MobileBy.AccessibilityId("ExitFullscreen")).Click();
// Wait for restore transition.
Thread.Sleep(1000);
}
// Make sure we exited fullscreen.
- mainWindow = _session.FindElementByAccessibilityId("MainWindow");
- windowState = mainWindow.FindElementByAccessibilityId("MainWindowState");
+ mainWindow = _session.FindElement(MobileBy.AccessibilityId("MainWindow"));
+ windowState = mainWindow.FindElement(MobileBy.AccessibilityId("MainWindowState"));
Assert.Equal("Normal", windowState.Text);
}
[PlatformFact(TestPlatforms.MacOS)]
public void WindowOrder_NonOwned_Window_Does_Not_Stay_InFront_Of_Parent()
{
- var mainWindow = _session.FindElementByAccessibilityId("MainWindow");
+ var mainWindow = _session.FindElement(MobileBy.AccessibilityId("MainWindow"));
using (OpenWindow(new PixelSize(800, 100), ShowWindowMode.NonOwned, WindowStartupLocation.Manual))
{
@@ -214,7 +214,7 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal(2, secondaryWindowIndex);
- var sendToBack = _session.FindElementByAccessibilityId("SendToBack");
+ var sendToBack = _session.FindElement(MobileBy.AccessibilityId("SendToBack"));
sendToBack.Click();
}
}
@@ -275,7 +275,7 @@ namespace Avalonia.IntegrationTests.Appium
using (OpenWindow(new PixelSize(200, 100), mode, WindowStartupLocation.Manual))
{
var secondaryWindow = GetWindow("SecondaryWindow");
- var miniaturizeButton = secondaryWindow.FindElementByAccessibilityId("_XCUI:MinimizeWindow");
+ var miniaturizeButton = secondaryWindow.FindElement(MobileBy.AccessibilityId("_XCUI:MinimizeWindow"));
Assert.False(miniaturizeButton.Enabled);
}
@@ -289,19 +289,19 @@ namespace Avalonia.IntegrationTests.Appium
using (OpenWindow(new PixelSize(200, 100), mode, WindowStartupLocation.Manual))
{
var secondaryWindow = GetWindow("SecondaryWindow");
- var miniaturizeButton = secondaryWindow.FindElementByAccessibilityId("_XCUI:MinimizeWindow");
+ var miniaturizeButton = secondaryWindow.FindElement(MobileBy.AccessibilityId("_XCUI:MinimizeWindow"));
miniaturizeButton.Click();
Thread.Sleep(1000);
- var hittable = _session.FindElementsByXPath("/XCUIElementTypeApplication/XCUIElementTypeWindow")
+ var hittable = _session.FindElements(MobileBy.XPath("/XCUIElementTypeApplication/XCUIElementTypeWindow"))
.Select(x => x.GetAttribute("hittable")).ToList();
Assert.Equal(new[] { "true", "false" }, hittable);
- _session.FindElementByAccessibilityId("RestoreAll").Click();
+ _session.FindElement(MobileBy.AccessibilityId("RestoreAll")).Click();
Thread.Sleep(1000);
- hittable = _session.FindElementsByXPath("/XCUIElementTypeApplication/XCUIElementTypeWindow")
+ hittable = _session.FindElements(MobileBy.XPath("/XCUIElementTypeApplication/XCUIElementTypeWindow"))
.Select(x => x.GetAttribute("hittable")).ToList();
Assert.Equal(new[] { "true", "true" }, hittable);
}
@@ -310,30 +310,30 @@ namespace Avalonia.IntegrationTests.Appium
[PlatformFact(TestPlatforms.MacOS)]
public void Hidden_Child_Window_Is_Not_Reshown_When_Parent_Clicked()
{
- var mainWindow = _session.FindElementByAccessibilityId("MainWindow");
+ var mainWindow = _session.FindElement(MobileBy.AccessibilityId("MainWindow"));
// We don't use dispose to close the window here, because it seems that hiding and re-showing a window
// causes Appium to think it's a different window.
OpenWindow(null, ShowWindowMode.Owned, WindowStartupLocation.Manual);
var secondaryWindow = GetWindow("SecondaryWindow");
- var hideButton = secondaryWindow.FindElementByAccessibilityId("HideButton");
+ var hideButton = secondaryWindow.FindElement(MobileBy.AccessibilityId("HideButton"));
hideButton.Click();
- var windows = _session.FindElementsByXPath("XCUIElementTypeWindow");
+ var windows = _session.FindElements(MobileBy.XPath("XCUIElementTypeWindow"));
Assert.Single(windows);
mainWindow.Click();
- windows = _session.FindElementsByXPath("XCUIElementTypeWindow");
+ windows = _session.FindElements(MobileBy.XPath("XCUIElementTypeWindow"));
Assert.Single(windows);
- _session.FindElementByAccessibilityId("RestoreAll").Click();
+ _session.FindElement(MobileBy.AccessibilityId("RestoreAll")).Click();
// Close the window manually.
secondaryWindow = GetWindow("SecondaryWindow");
- secondaryWindow.FindElementByAccessibilityId("_XCUI:CloseWindow").Click();
+ secondaryWindow.FindElement(MobileBy.AccessibilityId("_XCUI:CloseWindow")).Click();
}
[PlatformFact(TestPlatforms.MacOS)]
@@ -347,16 +347,16 @@ namespace Avalonia.IntegrationTests.Appium
// The XPath of the title bar text _should_ be "XCUIElementTypeStaticText"
// but Appium seems to put a fake node between the window and the title bar
// https://stackoverflow.com/a/71914227/6448
- var titleBar = secondaryWindow.FindElementsByXPath("/*/XCUIElementTypeStaticText").Count;
+ var titleBar = secondaryWindow.FindElements(MobileBy.XPath("/*/XCUIElementTypeStaticText")).Count;
Assert.Equal(0, titleBar);
- secondaryWindow.FindElementByAccessibilityId("CurrentSystemDecorations").Click();
- _session.FindElementByAccessibilityId("SystemDecorationsNone").SendClick();
- secondaryWindow.FindElementByAccessibilityId("CurrentSystemDecorations").Click();
- _session.FindElementByAccessibilityId("SystemDecorationsFull").SendClick();
+ secondaryWindow.FindElement(MobileBy.AccessibilityId("CurrentSystemDecorations")).Click();
+ _session.FindElement(MobileBy.AccessibilityId("SystemDecorationsNone")).SendClick();
+ secondaryWindow.FindElement(MobileBy.AccessibilityId("CurrentSystemDecorations")).Click();
+ _session.FindElement(MobileBy.AccessibilityId("SystemDecorationsFull")).SendClick();
- titleBar = secondaryWindow.FindElementsByXPath("/*/XCUIElementTypeStaticText").Count;
+ titleBar = secondaryWindow.FindElements(MobileBy.XPath("/*/XCUIElementTypeStaticText")).Count;
Assert.Equal(0, titleBar);
}
}
@@ -393,8 +393,8 @@ namespace Avalonia.IntegrationTests.Appium
{
if (decorations != SystemDecorations.Full)
{
- secondaryWindow.FindElementByAccessibilityId("CurrentSystemDecorations").Click();
- _session.FindElementByAccessibilityId("SystemDecorationsFull").SendClick();
+ secondaryWindow.FindElement(MobileBy.AccessibilityId("CurrentSystemDecorations")).Click();
+ _session.FindElement(MobileBy.AccessibilityId("SystemDecorationsFull")).SendClick();
}
}
}
@@ -408,13 +408,13 @@ namespace Avalonia.IntegrationTests.Appium
SystemDecorations systemDecorations = SystemDecorations.Full,
bool extendClientArea = false)
{
- var sizeTextBox = _session.FindElementByAccessibilityId("ShowWindowSize");
- var modeComboBox = _session.FindElementByAccessibilityId("ShowWindowMode");
- var locationComboBox = _session.FindElementByAccessibilityId("ShowWindowLocation");
- var canResizeCheckBox = _session.FindElementByAccessibilityId("ShowWindowCanResize");
- var showButton = _session.FindElementByAccessibilityId("ShowWindow");
- var systemDecorationsComboBox = _session.FindElementByAccessibilityId("ShowWindowSystemDecorations");
- var extendClientAreaCheckBox = _session.FindElementByAccessibilityId("ShowWindowExtendClientAreaToDecorationsHint");
+ var sizeTextBox = _session.FindElement(MobileBy.AccessibilityId("ShowWindowSize"));
+ var modeComboBox = _session.FindElement(MobileBy.AccessibilityId("ShowWindowMode"));
+ var locationComboBox = _session.FindElement(MobileBy.AccessibilityId("ShowWindowLocation"));
+ var canResizeCheckBox = _session.FindElement(MobileBy.AccessibilityId("ShowWindowCanResize"));
+ var showButton = _session.FindElement(MobileBy.AccessibilityId("ShowWindow"));
+ var systemDecorationsComboBox = _session.FindElement(MobileBy.AccessibilityId("ShowWindowSystemDecorations"));
+ var extendClientAreaCheckBox = _session.FindElement(MobileBy.AccessibilityId("ShowWindowExtendClientAreaToDecorationsHint"));
if (size.HasValue)
sizeTextBox.SendKeys($"{size.Value.Width}, {size.Value.Height}");
@@ -422,13 +422,13 @@ namespace Avalonia.IntegrationTests.Appium
if (modeComboBox.GetComboBoxValue() != mode.ToString())
{
modeComboBox.Click();
- _session.FindElementByName(mode.ToString()).SendClick();
+ _session.FindElement(MobileBy.Name(mode.ToString())).SendClick();
}
if (locationComboBox.GetComboBoxValue() != location.ToString())
{
locationComboBox.Click();
- _session.FindElementByName(location.ToString()).SendClick();
+ _session.FindElement(MobileBy.Name(location.ToString())).SendClick();
}
if (canResizeCheckBox.GetIsChecked() != canResize)
@@ -437,7 +437,7 @@ namespace Avalonia.IntegrationTests.Appium
if (systemDecorationsComboBox.GetComboBoxValue() != systemDecorations.ToString())
{
systemDecorationsComboBox.Click();
- _session.FindElementByName(systemDecorations.ToString()).SendClick();
+ _session.FindElement(MobileBy.Name(systemDecorations.ToString())).SendClick();
}
if (extendClientAreaCheckBox.GetIsChecked() != extendClientArea)
@@ -446,18 +446,18 @@ namespace Avalonia.IntegrationTests.Appium
return showButton.OpenWindowWithClick();
}
- private AppiumWebElement GetWindow(string identifier)
+ private AppiumElement GetWindow(string identifier)
{
// The Avalonia a11y tree currently exposes two nested Window elements, this is a bug and should be fixed
// but in the meantime use the `parent::' selector to return the parent "real" window.
- return _session.FindElementByXPath(
- $"XCUIElementTypeWindow//*[@identifier='{identifier}']/parent::XCUIElementTypeWindow");
+ return _session.FindElement(MobileBy.XPath(
+ $"XCUIElementTypeWindow//*[@identifier='{identifier}']/parent::XCUIElementTypeWindow"));
}
private int GetWindowOrder(string identifier)
{
var window = GetWindow(identifier);
- var order = window.FindElementByXPath("//*[@identifier='CurrentOrder']");
+ var order = window.FindElement(MobileBy.XPath("//*[@identifier='CurrentOrder']"));
return int.Parse(order.Text);
}