我试图使用Appium在Android上进行自动化测试。 这是我的代码。Appium - 原生Android应用程序 - 滚动(Java)
public class TestAndroidRealDevice {
private static AndroidDriver wd;
Dimension size;
@Before
public void setUp() throws Exception {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.APPIUM_VERSION, "1.6.4-beta.2");
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "6.0.1");
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Samsung Galaxy S6");
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Appium");
capabilities.setCapability(MobileCapabilityType.FULL_RESET, true);
capabilities.setCapability(MobileCapabilityType.APP, "/Users/app-t3st-release.apk");
wd = new AndroidDriver(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);
wd.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
Thread.sleep(3000);
}
@Test
public void loginTest() throws Exception {
WebElement login = wd.findElement(By.id("proceedBtn"));
login.click();
wd.findElement(By.id("customerBigBtn")).click();
wd.findElement(By.id("haveAPassAlreadyBtn")).click();
wd.findElement(By.id("countrySpinnerContainer")).click();
for (int i=0; i<4; i++)
{
Thread.sleep(2000);
if (wd.findElement(By.xpath("//android.widget.ListView[contains(text(), 'Poland (+48)')]")).isDisplayed()) {
wd.findElement(By.xpath("//android.widget.ListView[contains(text(), 'Poland (+48)')]")).click();
break;
}
else
{
do {
horizontalScroll();
} while (wd.findElement(By.xpath("//android.widget.ListView[contains(text(), 'Poland (+48)')]")).isDisplayed());
}
}
}
public void horizontalScroll()
{
WebElement el = wd.findElementByClassName("android.widget.ListView");
el.getSize();
int x_start=(int)(size.width*0.60);
int x_end=(int)(size.width*0.30);
int y=130;
wd.swipe(x_start,y,x_end,y,4000);
}
@After
public void tearDown() throws Exception {
wd.quit();
}
在此之后命令我的测试失败:
wd.findElement(By.id("customerBigBtn")).click();
wd.findElement(By.id("haveAPassAlreadyBtn")).click();
wd.findElement(By.id("countrySpinnerContainer")).click();enter code here
在该屏幕我有下拉菜单,在这里我想找到并选择具体的国家。为此,我应该滚动(滑动)下拉菜单 - 直到我的国家(我想从列表中选择)在屏幕上可见。
但不幸的是出了什么错在这里;(
,但我得到的是使用提供的策略,我无法找到一个元素的错误,我的测试失败,没有任何滚动动作来找到这个元素
所有。 ?的想法,我应该改变 THX