Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions src/Appium.Net/Appium/MobileBy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,10 @@ public static By AndroidUIAutomator(IUiAutomatorStatementBuilder selector) =>
public static new By Name(string selector) => new ByName(selector);

public static new By Id(string selector) => new ById(selector);

public static new By ClassName(string selector) => new ByClassName(selector);

public static new By TagName(string selector) => new ByTagName(selector);
}

/// <summary>
Expand Down Expand Up @@ -472,4 +476,30 @@ public ById(string selector) : base(selector, MobileSelector.Id)
public override string ToString() =>
$"ById({selector})";
}

public class ByTagName : MobileBy
{
/// <summary>
/// Initializes a new instance of the <see cref="ByTagName"/> class.
/// </summary>
/// <param name="selector">Tag name selector.</param>
public ByTagName(string selector) : base(selector, MobileSelector.TagName)
{
}
public override string ToString() =>
$"ByTagName({selector})";
}

public class ByClassName : MobileBy
{
/// <summary>
/// Initializes a new instance of the <see cref="ByClassName"/> class.
/// </summary>
/// <param name="selector">Class name selector.</param>
public ByClassName(string selector) : base(selector, MobileSelector.ClassName)
{
}
public override string ToString() =>
$"ByClassName({selector})";
}
}
10 changes: 10 additions & 0 deletions test/integration/Windows/ClickElementTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,16 @@ public void Addition()
Assert.AreEqual("Display is 8", CalculatorResult.Text);
}

[Test]
public void AdditionWithCompoundBys()
{
_calculatorSession.FindElement(MobileBy.ClassName("ApplicationFrameWindow")).FindElement(MobileBy.Name("One")).Click();
_calculatorSession.FindElement(MobileBy.AccessibilityId("plusButton")).Click();
_calculatorSession.FindElement(MobileBy.Name("Calculator")).FindElement(MobileBy.Name("Five")).Click();
_calculatorSession.FindElement(MobileBy.Name("Equals")).Click();
Assert.AreEqual("Display is 6", CalculatorResult.Text);
}

[Test]
public void Combination()
{
Expand Down