我正在尝试通过appium与自定义小部件进行交互,该小部件构建为包装EditText的LinerLayout。 LinearLayout会逐步添加EditText。 Appium检查器将LinearLayout显示为editText,因此我无法与LinearLayout中的editText进行交互。
在照片中,您可以看到所选的自定义窗口小部件,该appium将其识别为EditText。
任何想法如何与自定义小部件进行交互?enter image description here
答案 0 :(得分:0)
点击here查看uiautomator视图
你可以看到最后两个小部件被检查为EditText,最后一个小部件实际上是一个LinearLayout
答案 1 :(得分:0)
你可以尝试找到你认为正确找到的线性布局或编辑文本的所有子元素,如下所示:
@FindAll(@FindBy(xpath = ".../android.widget.LinearLayout[1]/*"))
List<MobileElement> editTexts;
通过这个,您可以获得Appium 找到的所有元素的列表,您现在可以与它进行交互。 希望有所帮助。
答案 2 :(得分:0)
与检查器视图中显示的屏幕上的元素进行交互。
SendKeys使用:
driver.findElement(By.id("FloatLabeledEditTextEdtText")).sendKeys("abc");
点击/点击使用:
driver.findElement(By.id("FloatLabeledEditTextEdtText")).click();
在检查器中指定元素的id,如果您有多个具有相同ID的元素,则可以使用:
List <WebElements> multipleElements = driver.findElement(By.id("FloatLabeledEditTextEdtText"));
multipleElements.get(index).click()/.sendkeys("xyz"); //either action at a time where index is the position of element you want to access