Я хотел бы спросить, когда мы используем сенсорное действие в Апиуме. Я также хочу спросить: можем ли мы использовать действие касания, чтобы нажать/нажать элемент android.widget.EditText и отправитьKeys на него. Могу ли я иметь работоспособный пример, чтобы проверить его?Appium - Когда мы используем сенсорное действие? Могу ли я иметь фактический пример для ввода текста с ним?
1
A
ответ
1
Мы используем действие касания всякий раз, когда хотим щелкните/коснитесь на конкретном элементе устройства.
Для Щелкнува
Вы можете использовать сенсорное действие для EditText элемента в bewlow:
driver.findElement(By.xpath("your element xpath/id")).click();
Для Typing
Кроме того, Вы можете использовать SendKeys для EditText элемента, как показано ниже: Это внутреннее нажатие на элемент, очищает текст и набирает строку, которую вы отправляете.
driver.findElement(By.xpath("your element xpath/id")).sendKeys("textToBeTyped");
ИЛИ
Вы можете нажать и отправить ключи отдельно, не очищая существующий текст внутри текстового элемента, как показано ниже:
driver.findElement(By.xpath("your element xpath/id")).click();
driver.getKeyboard().sendKeys(textToBeTyped);
1
1.public void tap(int fingers, int x, int y, int duration) {
appiumDriver.tap(fingers, x, y, duration);
}
2. public void swipe(int startx, int starty, int endx,int endy,int duration)
{
TouchAction touchAction = new TouchAction(appiumDriver);
System.out.println(startx+" "+starty);
System.out.println("Entering swipe");
System.out.println("Swipe from "+startx +" " +starty +"to" +endx +" " +endy);
touchAction.press(startx, starty).waitAction(duration).moveTo(endx,endy).release().perform();
}
3. public void longClick(String element, int index, int clickCount, int X, int Y) {
WebElement webElement = appiumDriver.findElement(By.xpath(element));
TouchAction Action = new TouchAction(appiumDriver);
Action.longPress(webElement).release().perform();
}
4. public void drag(String element, int index, int xOffset, int yOffset) {
WebElement webElement = appiumDriver.findElement(By.xpath(element));
TouchAction drag=new TouchAction(appiumDriver);
int startX=webElement.getLocation().getX();
int startY=webElement.getLocation().getY();
System.out.println("startX: "+startX+" startY: "+startY);
drag.press(startX,startY).moveTo(xOffset,yOffset).release().perform();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
находится ниже решение работает? – Vinod
Не совсем. Я мог бы найти кнопку, чтобы щелкнуть, однако есть проблема другого, я не могу отправитьKeys в textField: http://stackoverflow.com/questions/42271992/appium-1-6-sendkeys-to-edittext-failed I может получить клавиатуру, но я не могу отправитьKeys, потому что элементы никогда не будут нажаты. –
Можете ли вы использовать последние две строки кода в нижнем ответе? Это должно решить вашу проблему. Не отправляйте ключи непосредственно элементу. Просто нажмите на него, а затем используйте driver.getKeyboard(). SendKeys ("textToBeTyped"); – Vinod