我使用Appium + Java自动化Tablet应用程序。在一个屏幕上,我有100多个字段(文本框+下拉菜单)自动执行哪个滚动视图。在Appium中滚动
要自动执行这些100多个字段,我已经在单独的Excel工作表中列出了所有的ID(该屏幕中的文本框和下拉列表)以及测试用例和测试数据。我的代码循环运行,选择测试用例,数据和相关ID并执行。所以,我的代码如下所示:
loop : for(int j = 1; j <= fieldCount; j++)
{
objElementRepositoryLibrary.setElementRepositoryDataLibrary(j);
switch(ElementRepositoryLibrary.getElementType()) {
case "AutoPopulated":
System.out.println(ElementRepositoryLibrary.getElementValue() + " is Autopopulated");
break;
case "Dropdown":
ElementOperation.checkElementState(qdeDriver, ElementRepositoryLibrary.getLocator(), ElementRepositoryLibrary.getElementValue());
if(ElementOperation.ElementAcceess.equals(false))
System.out.println(ElementRepositoryLibrary.getElementValue() + " is disabled");
else
objElementOperation.dropdownSelectListner(qdeDriver, ElementRepositoryLibrary.getLocator(), ElementRepositoryLibrary.getElementValue(), field[0][j-1]);
break;
case "Button":
ElementOperation.checkElementState(qdeDriver, ElementRepositoryLibrary.getLocator(), ElementRepositoryLibrary.getElementValue());
if(ElementOperation.ElementAcceess.equals(false)) {
System.out.println(ElementRepositoryLibrary.getElementValue() + " is disabled");
break loop;
}
else if(field[0][j-1].equals(""))
System.out.println("Checking for Null value");
else if(field[0][j-1].equals("Yes") && ElementRepositoryLibrary.getFieldName().equals("QR Scanner"))
objElementOperation.buttonClickListner(qdeDriver, ElementRepositoryLibrary.getLocator(), ElementRepositoryLibrary.getElementValue());
else if(ElementRepositoryLibrary.getFieldName().contains("Capture Document"))
objElementOperation.captureDocument(qdeDriver, ElementRepositoryLibrary.getLocator(), ElementRepositoryLibrary.getElementValue());
break;
default :
objElementOperation.textboxSetListner(qdeDriver, ElementRepositoryLibrary.getElementType(), ElementRepositoryLibrary.getLocator(),
ElementRepositoryLibrary.getElementValue(), field[0][j-1]);
break;
}
}
问题:灌装几个(比如7)字段后,它给我NoSuchElementException异常,因为我在屏幕滚动到移动到下一个字段(它是这样:屏幕包含7个字段&您必须滚动才能查看下面的字段,并且在显示屏中查看之前,automator也不会识别该元素)。
我试过的是,我没有捕获NoSuchElementException并执行滚动操作。但这不是正确的方法,因为如果已经搜索的元素实际上不存在,那么它也会捕获NoSuchElementException并执行滚动操作。
建议一些很好的方法来消除这个问题。让我知道是否需要任何细节。
是否有可能在下拉列表中的2个项目(或更多)将具有相同的值? –
@DavidEp,不,它不会。 与该问题有关吗? – Ashish
是的 - 我想我可以给你一个答案 –