I'm waiting for your ans please @Telmo_Cardoso
@Telmo_Cardoso in my case, I need to swipe a row to left to view hidden button on right side of it.
I tried your solution but instead of press event, I see tap event happening on row.
I'm not sure what may be going wrong, even I tried longPress instead of press but no luck yet.
Can you please refer to below method and review if it has some issue ?
WebElement rowToSlide = driver.findElement(By.xpath("//XCUIElementTypeApplication[1]//XCUIElementTypeTable[1]/XCUIElementTypeCell[1]"));
Dimension size = rowToSlide.getSize();TouchAction swipe = new TouchAction(driver).press(rowToSlide, size.width / 2 + 50 , size.height / 2).waitAction(1000) .moveTo(rowToSlide, 100, size.height / 2).release().perform();
@Telmo_Cardoso, I have created a new issue, could you please ans my question:
Hi @Telmo_Cardoso, i tried this code for Swipe Up, After running, the TestNG test result indicates passed but on the actual device is not swiped. Please Help me. Thanks
Looping @Al_Imran for this… How did you fixed yours? Thanks
One more thing, you can enable touch and pointer option for observing touch action, From android mobile Settings > Developer option > Input > Enable Pointer location and Show touches, observe the touch action and change the start point / end point / time duration from swipeVertical(driver,0.9,0.1,0.5,3000);
as you need.
Here’s how I placed it. I just copied the code above.
I called the method to my test.java class:
with Regards to Settings, I don’t have also the 'Enable Pointer location and Show touches ’ option. I’m currently using Samsung Galaxy S8. Thank you. @Al_Imran
I have tried this but no effect takes place
I have 1 question how u get the co-ordinates
0.9,0.1,0.5,3000
And also when I tried this
Dimension dim= SwipeHomeButton.getSize();
int height= dim.getHeight();
int width = dim.getWidth();
int y = (int)(height*.20);
int startx=(int)(width*.75);
int endx=(int)(width*.35);
driver.swipe(startx, y, endx, y,500);
new TouchAction(driver).press(y, startx).waitAction(5000).moveTo(y, endx).release().perform();
It pulled from the top on my android phone
It looks like it is not able to get the proper co-ordinates
Can u plzz help me with this
Hi
I am new to Appium and struggling on calling a swipe method from left to right.
As per you video, driver is not having method called swipe in its intelligence.
I have tried using calling TouchAction class as well but while giving driver as argument it is
throwing the below error all the time. I am Struck and not able to move further.
Please help here
Still No progress. I am getting below error.
Below is my Capability SetUp. Please let me know If any where am doing wrong.
public class ExampleHorizontalSwipe {
//AndroidDriver driver;
WebDriver driver;
@Test(priority=0)
public void setUp() throws MalformedURLException
{
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "NexusTest");
capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");
capabilities.setCapability(CapabilityType.VERSION, "5.0.1");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("...");
capabilities.setCapability("appActivity", "...");
driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
// driver = new AndroidDriver(new URL(“http://127.0.0.1:4723/wd/hub”), capabilities);
// driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
}
Hi After using the below method, console show script pass successfully but execution was not happening from left to right for a specific element. please help where am i missing.
public class ExampleHorizontalSwipe {
AndroidDriver driver = null;
}
TouchAction act = new TouchAction(driver);
act.longPress(200, 180, Duration.ofSeconds(2)).moveTo(600, 180).release().perform();
Hi @praveen0314 can you please post your code, after making which changes this swipe started working to you
Hi All, Finally I could able to resolve the issue of swiping for
Android
Hybrid App
Samsung 8 Device
before start of swiping use the switching to the Native context, after doing the swipe action
//Find swipe start and end point from screen's.
//Find startx point which is at right side of screen.
int startx = (int) (size.width * 0.70);
//Find endx point which is at left side of screen.
int endx = (int) (size.width * 0.30);
//Find vertical point where you wants to swipe. It is in middle of screen height.
int starty = size.height / 2;
System.out.println("startx = " + startx + " ,endx = " + endx + " , starty = " + starty);
//Swipe from Right to Left.
if(swipingDirection == Swipe.Left)
((AndroidDriver<WebElement>)getInstance()).swipe(startx, starty, endx, starty, 2000);
//Swipe from Left to Right.
if(swipingDirection == Swipe.Right)
((AndroidDriver<WebElement>)getInstance()).swipe(endx, starty, startx, starty, 2000);
switch back to WebContext to continue working with elements. Hope this solution helps