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.