gpt4 book ai didi

java - 用 JAVA 编写的 Appium 测试中 LinearLayout 元素列表索引的奇怪行为

转载 作者:太空宇宙 更新时间:2023-11-04 13:05:27 26 4
gpt4 key购买 nike

我正在使用 Appium 测试本地 Android 移动应用程序,测试是用 Java 编写的。

在下面的代码中,我尝试在应用程序的菜单列表中搜索某个项目并单击。菜单总共有 4 个项目,但是 listSize 读取为 35,并且每次执行时读取的值都不同。另外,如果我单击 menuList.get(0).click(),则在执行中,第二个项目而不是第一个项目获得了点击。

打印下面列出的结果。

Appium版本1.4.13.1,JDK版本1.8.0_66。不确定是否有其他相关信息,如果您想知道,请询问。

List<WebElement> menuList = driver.findElementsByClassName("android.widget.LinearLayout");
int listSize = menuList.size();
int index = 0;
Boolean menuFound = false;
while(!menuFound && index < listSize)
{
String label = menuList.get(index).findElement(By.id("no.ruter.reise.qa:id/label")).getText();
System.out.printf("%d of %d, %s\n", index, listSize, label);
if (label.equals(menuItem)){
menuList.get(index).click();
System.out.printf("\t%s %s\n", menuItem, "click");
menuFound = true;
}
index++;
}

打印结果:

Test: avgangMinpositionTilStavNaa
0 of 35, Avgangstider
1 of 35, Avgangstider
2 of 35, Avgangstider
3 of 35, Avgangstider
4 of 35, Avgangstider
5 of 35, Avgangstider
6 of 35, Avgangstider
7 of 35, Avgangstider
8 of 35, Avgangstider
9 of 35, Avgangstider
10 of 35, Avgangstider
11 of 35, Avgangstider
12 of 35, Avgangstider
13 of 35, Avgangstider
14 of 35, Avgangstider
15 of 35, Avgangstider
16 of 35, Avgangstider
17 of 35, Avgangstider
18 of 35, Avgangstider
19 of 35, Avgangstider
20 of 35, Avgangstider
21 of 35, Avgangstider
22 of 35, Avgangstider
23 of 35, Avgangstider
24 of 35, Avgangstider
25 of 35, Avgangstider
26 of 35, Avgangstider
27 of 35, Avgangstider
28 of 35, Avgangstider
29 of 35, Avgangstider
30 of 35, Avgangstider
31 of 35, Avgangstider
32 of 35, Favoritter
33 of 35, Kart
34 of 35, Finn reise
Finn reise click
Finn reise

最佳答案

您正在使用常见的“android.widget.LinearLayout”类,并且您的应用程序有 35 个布局,其类名称为“android.widget.LinearLayout”。

这些布局可能采用嵌套格式。您需要为菜单创建定位器,如果您的所有菜单定位器的 ID 为“no.ruter.reise.qa:id/label”,您可以使用以下代码:

List<WebElement> menuList = driver.findElementsByClassName("no.ruter.reise.qa:id/label");
int listSize = menuList.size();
int index = 0;
Boolean menuFound = false;
for(WebElement menu : menuList)
{
String label = menu.getText();
System.out.printf("%d of, %s\n", index,label);
if (label.equals(menuItem)){
menu.click();
System.out.printf("\t%s %s\n", menuItem, "click");
menuFound = true;
}
index++;
}

关于java - 用 JAVA 编写的 Appium 测试中 LinearLayout 元素列表索引的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34495641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com