2016-11-18 64 views
1

后我的测试由具有元素的列表。 点击第一个打开它,然后从右向左滑动访问下一个,并确保它们不同。appium IOS不清爽刷卡

在Android上它的工作完美,但出于某种原因,似乎刷卡进入新页面后,驱动程序不会自动刷新。

如果我试图访问一个文本我一直在从第一页具有元件即使我在列表

的第二或第三元素是有一种在Appium刷新页面iOS?

这里是我的代码:

找到我的标题

driver.findElement(By.id("title_label")); 

刷卡

Dimension size = driver.manage().window().getSize(); 
driver.swipe(size.getWidth()-100, size.getHeight()/2, 100, size.getHeight()/2, 500); 

然后重拍查找标题功能,甚至强硬的我的屏幕正在改变我的iPad和一个CAN看到新的标题,在代码中,我仍然有旧的

什么想法?

编辑:

只是要清楚,如果它不是。刷新到新页面时会发生这种情况,因此整个页面都会刷新。 它不只是它的一部分,也不是在同一页面的元素中滑动。

+1

你能检查你打印出driver.getPageSource的'内容,你会得到什么() '刷卡后?也许有两个ID为“title_label”的元素首先是您已经找到的原始元素? – Domestus

+0

您是否在刷卡后再次使用该元素? – noor

+0

@Domestus似乎它保持旧的页面在内存somwhere和我有机会获得2个标题1,而不是因为我正在使用的方法是findElement我刚刚得到的第一个1,但如果我用findElements我得到的2个标题&第二个是正确的...什么是ios废话... – user3718160

回答

0

试图得到该位置作为getLocation() ,然后就可以实现刷卡或使用在各个方向滚动:

TouchAction action = new TouchAction(driver); 

      int startY = element1.getLocation().getY() + (element1.getSize().getHeight()/2); 
      int startX = element1.getLocation().getX() + (element1.getSize().getWidth()/2); 

      int endX = element2.getLocation().getX() + (element2.getSize().getWidth()/2); 
      int endY = element2.getLocation().getY() + (element2.getSize().getHeight()/2); 

      action.press(startX, startY).waitAction(2000).moveTo(endX, endY).release().perform(); 
+1

我的确编辑了我的问题,因为它不够清楚。我滑动到一个全新的页面,所以它不是刷卡本身不起作用。刷卡工作正常。它的结论,即不工作,仍然让旧页面标题 – user3718160

+0

啊我很抱歉,我误解你,所以我建议把等待一会儿轻扫 – Emna

+0

后,我试图把睡眠,但做了新的页面标题不改变任何东西:/ – user3718160