// Get list of child elements based on selector from parent and return element in index public static AndroidElement GetChildElementFromList(AndroidElement parent, SelectBy by, string selector, int index) { AndroidElement e = null; switch (by) { case SelectBy.ID: e = (AndroidElement)parent.FindElementsById(selector)[index]; break; case SelectBy.Class: e = (AndroidElement)parent.FindElementsByClassName(selector)[index]; break; case SelectBy.XPath: e = (AndroidElement)parent.FindElementsByXPath(selector)[index]; break; case SelectBy.ExactText: e = (AndroidElement)parent.FindElementsByAndroidUIAutomator(String.Format("new UiSelector().text(\"{0}\")", selector)).ElementAt(index); break; case SelectBy.ContainsText: e = (AndroidElement)parent.FindElementsByAndroidUIAutomator(String.Format("new UiSelector().textContains(\"{0}\")", selector)).ElementAt(index); break; case SelectBy.RegexText: e = (AndroidElement)parent.FindElementsByAndroidUIAutomator(String.Format("new UiSelector().textMatches(\"{0}\")", selector)).ElementAt(index); break; } return(e ?? throw new NotFoundException("Child with selector " + selector + " not found.")); }
public void FromElementTestCase() { AndroidDriver <IWebElement> driver = new AndroidDriver <IWebElement>(defaultUri, capabilities); server.respondTo("POST", "/element", new Dictionary <string, object> { { "ELEMENT", '5' } }); AndroidElement element = (AndroidElement)driver.FindElementByAndroidUIAutomator(".elements()"); server.clear(); server.respondTo("POST", "/element/5/element", new Dictionary <string, object> { { "ELEMENT", '6' } }); element.FindElementByAndroidUIAutomator(".elements()"); server.clear(); List <object> results = new List <object>(); results.Add(new Dictionary <string, object> { { "ELEMENT", "4" } }); server.respondTo("POST", "/element/5/elements", results); element.FindElementsByAndroidUIAutomator(".elements()"); }