Left or Right swipe not working in appium for android app


#14

@Telmo_Cardoso, Could you please tell me how to hide the android keyboard.

I have tried this one: driver.hideKeyboard() but it’s not working.

Currently I’m using: driver.navigate().back(); but I think it’s not the proper way.

could you please tell me the better way i’m using java-client 4.1.2


#15

I’m waiting for your ans please @Telmo_Cardoso


#16

New “issues” should be open in new topics. What happens when you run driver.hideKeyboard() ? Post the logs in a new topic. Thanks


#17

Thanks a lot, ok I will create a new issue.


#18

@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();

#19

@Telmo_Cardoso, I have created a new issue, could you please ans my question:


#20

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


#21

Looping @Al_Imran for this… How did you fixed yours? Thanks


#22

It’s working fine for me on real device.


#23

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.


#24

Here’s how I placed it. I just copied the code above.

I called the method to my test.java class:
Capture

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


#25

Method is ok, Please check again, Settings > Enable the Developer options > Scroll down the page > Input > Enable Pointer location and Show touches (check mark box)


#26

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


#27

Hi,

Here is detailed video on how you can swipe from left to right, right to left, from top to bottom and from bottom to top using Appium.

Thanks,
Anuja


#28

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

image


#29

try casting driver to AppiumDriver:

 new TouchAction((AppiumDriver) driver)

#30

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);
}


#31

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();


#32

Issue Resolved Closing… Thank You


#33

Hi @praveen0314 can you please post your code, after making which changes this swipe started working to you