我試圖使用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