在上一篇文章中,我们已经看到了如何在Appium中执行垂直滚动,现在轮到学习在Appium中进行水平滚动了。现在许多应用程序都有水平选项卡滚动和测试,这似乎首先具有挑战性,但是通过这篇文章,您将能够编写appium测试用例非常有效。我们将使用ToucAction类和driver.swipe()方法获得所需的结果。
正在测试的应用程序-
假设您有一个带有15个水平制表符的应用程序,名称分别为 tab1,tab2,tab3 直到 tab15.
测试案例方案-
1.启动应用
2.执行从右到左的标签,直到我们看到 tab8.
3.点击 tab8.
查找Y坐标-
我们需要屏幕的y坐标 并发现有两种方法-
1.使用指针位置-
*转到手机设置
*单击开发人员选项
*启用指针位置
*打开您的应用,然后单击水平选项卡的中间,然后您将得到x和y
坐标,但记下y坐标。
2.使用UI自动器-
*打开UIAutomator检查器。
* Take screen shot.
*单击水平选项卡的中间,并记下右上角显示的y坐标。
测试用例 -
1.我们将执行 horizontalScroll() 方法。在此方法中,我们将获得屏幕尺寸,我们可以从右到左滑动,在右侧找到起点,在左侧找到终点。我们也有y坐标,因此我们可以使用driver.swipe()执行水平滚动,如下所示
2.我们使用for循环滚动直到找到期望的选项卡。
public class HorizontalTabscroll { 鸦片Driver driver; Dimension size;
@Before public void testCaseSetup()throws Exception { DesiredCapabilities cap=new DesiredCapabilities(); cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android"); cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android device"); cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "4000"); cap.setCapability(MobileCapabilityType.APP, "c://apks//seekbarsample.apk"); cap.setCapability("noReset", true); driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap); }
@Test public void testHorizontalScroll()throws Exception { for(int i=0;i<4;i++) { Thread.sleep(2000); if (driver.findElement(By.name("tab8")).isDisplayed()) { driver.findElement(By.name("tab8")).click(); break; } else { horizontalScroll(); } } } public void horizontalScroll() { size=driver.manage().window().getSize(); int x_start=(int)(size.宽度*0.60); int x_end=(int)(size.宽度*0.30); int y=130; driver.swipe(x_start,y,x_end,y,4000); } @After public void testCaseTearDown() { driver.quit(); } }
注意 -可以使用start_y和end_y将相同的测试用例用于Vertical Scroll,并且x值将是恒定的(尝试一下)。
借助本教程,您可以为右向左水平滚动/滑动,左向右水平滚动/滑动,水平滚动编写appium测试代码,直到找到匹配的元素。
希望本教程对您有所帮助。分享您的反馈意见并 以下评论部分的问题。请在社交媒体上关注我 获取最新的帖子更新。
IT不适用于ios设备。
回复删除IT不适用于ios设备。
回复删除你能添加这个视频吗
回复删除我不建议使用Swipe,但可以使用以下代码。
回复删除el = self.driver.find_element_by_xpath("// XCUIElementTypeTable [1] / XCUIElementTypeCell [1]")
#长按删除表的第一行,将其移至左侧释放并执行。然后点击并执行。
el_size = el.size
打印el_size ['width']
打印el_size ['height']
touch = TouchAction(self.driver)
touch.press(el,375,65).wait(15).move_to(el,225,65).release()
touch.perform()
#删除元素,我们需要点击相同的位置
touch.tap(el,375,65,1).perform()
//appium.readthedocs.io/en/stable/en/writing-running-appium/touch-actions/
但是此代码仅特定于特定设备,如果我将此代码用于4英寸电话和6英寸电话,是否可以使用?
回复删除该代码根本无法滑动。不建议使用滑动方式
回复删除即使最新的appium java客户端7.3.0也不推荐使用Swipe方法
删除借助本教程,您可以为右向左水平滚动/滑动,左向右水平滚动/滑动,水平滚动编写appium测试代码,直到找到匹配的元素。 古董金耳环设计与价格 , 挡板头件 , 纸板首饰盒 , nishat亚麻围巾
回复删除