Extensibility- Extend Existing Elements- Extension Methods
Learn how to extend BELLATRIX iOS elements using extension methods.
Example
using Bellatrix.Mobile.IOS.GettingStarted.Custom;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Bellatrix.Mobile.IOS.GettingStarted
{
[TestFixture]
public class ExtendExistingElementWithExtensionMethodsTests : IOSTest
{
[Test]
public void ButtonClicked_When_CallClickMethod()
{
var button = App.Components.CreateByName<Button>("ComputeSumButton");
button.SubmitButtonWithScroll();
}
}
}
Explanations
namespace Bellatrix.Mobile.IOS.GettingStarted.Custom
{
public static class ButtonExtensions
{
public static void SubmitButtonWithScroll(this Button button)
{
button.ToExists().ToBeClickable().WaitToBe();
button.ScrollToVisible(ScrollDirection.Down);
button.Click();
}
}
}
One way to extend an existing element is to create an extension method for the additional action.
- Place it in a static class like this one.
- Create a static method for the action.
- Pass the extended element as a parameter with the keyword ‘this’.
- Access the native element through the WrappedElement property and the driver via WrappedDriver.
Later to use the method in your tests, add a using statement containing this class’s namespace.
using Bellatrix.Mobile.IOS.GettingStarted.Custom;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Bellatrix.Mobile.IOS.GettingStarted
To use the additional method you created, add a using statement to the extension methods’ namespace.
button.SubmitButtonWithScroll();
Use the custom added submit button with scroll-to-visible behaviour.