Appium 点击动态列表项
Appium clicking dynamic list item
我正在尝试自动单击包含特定文本的动态可滚动列表项的项目。列表项的文本正在使用 api 调用获取,它 may/will 根据 api 响应进行更改。
例如,假设我有 3 个列表项,比如苹果、芒果和香蕉。如果我想单击包含文本香蕉的项目,我该怎么做?
我的 Appium 桌面检查器我的 xml 动态列表文件如下所示
<android.view.ViewGroup content-desc="Dashboard_lv_Container">
<android.view.ViewGroup>
<android.widget.ListView content-desc="Dashboard_lv">
<android.widget.LinearLayout>
<android.view.ViewGroup>
<android.widget.FrameLayout content-desc="item_1">
<android.view.ViewGroup>
<android.view.ViewGroup>
<android.widget.TextView>
<android.view.ViewGroup>
<android.widget.ImageView>
<android.widget.LinearLayout>
<android.view.ViewGroup>
<android.widget.FrameLayout content-desc="item_2">
<android.view.ViewGroup>
<android.view.ViewGroup>
<android.widget.TextView>
<android.view.ViewGroup>
<android.widget.ImageView>
我想selectandroid.widget.TextView中包含某些文本的项目。我怎样才能做到这一点?
我用 UiSelector
解决了
try {
MobileElement element=driver.findElement(MobileBy.AndroidUIAutomator("new UiSelector().text(\"banana\")"));
element.click();
}catch (org.openqa.selenium.NoSuchElementException e){
System.out.println("Element not found");
}
对于可滚动列表,我使用 UiScrollable
描述
try {
MobileElement element=driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(\"new UiSelector().description(\"Dashboard_lv\")\").getChildByText(\"new UiSelector().text(\"banana\")\")"));
element.click();
}catch (org.openqa.selenium.NoSuchElementException e){
System.out.println("Element not found");
}
我正在尝试自动单击包含特定文本的动态可滚动列表项的项目。列表项的文本正在使用 api 调用获取,它 may/will 根据 api 响应进行更改。
例如,假设我有 3 个列表项,比如苹果、芒果和香蕉。如果我想单击包含文本香蕉的项目,我该怎么做?
我的 Appium 桌面检查器我的 xml 动态列表文件如下所示
<android.view.ViewGroup content-desc="Dashboard_lv_Container"> <android.view.ViewGroup> <android.widget.ListView content-desc="Dashboard_lv"> <android.widget.LinearLayout> <android.view.ViewGroup> <android.widget.FrameLayout content-desc="item_1"> <android.view.ViewGroup> <android.view.ViewGroup> <android.widget.TextView> <android.view.ViewGroup> <android.widget.ImageView> <android.widget.LinearLayout> <android.view.ViewGroup> <android.widget.FrameLayout content-desc="item_2"> <android.view.ViewGroup> <android.view.ViewGroup> <android.widget.TextView> <android.view.ViewGroup> <android.widget.ImageView>
我想selectandroid.widget.TextView中包含某些文本的项目。我怎样才能做到这一点?
我用 UiSelector
解决了try {
MobileElement element=driver.findElement(MobileBy.AndroidUIAutomator("new UiSelector().text(\"banana\")"));
element.click();
}catch (org.openqa.selenium.NoSuchElementException e){
System.out.println("Element not found");
}
对于可滚动列表,我使用 UiScrollable 描述
try {
MobileElement element=driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(\"new UiSelector().description(\"Dashboard_lv\")\").getChildByText(\"new UiSelector().text(\"banana\")\")"));
element.click();
}catch (org.openqa.selenium.NoSuchElementException e){
System.out.println("Element not found");
}