Метод tap (TapOptions) не определен для типа TouchActions - PullRequest
0 голосов
/ 02 апреля 2019
import java.net.MalformedURLException;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.touch.TouchActions;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import static io.appium.java_client.touch.TapOptions.tapOptions;
import static io.appium.java_client.touch.offset.ElementOption.element;

public class Gestures extends Parent {

    public static void main(String[] args) throws MalformedURLException {
        // TODO Auto-generated method stub
        AndroidDriver<AndroidElement> driver = Capabilities();
        driver.findElementByXPath("//android.widget.TextView[@text='Views']").click();      
        TouchActions t = new TouchActions(driver);
        WebElement expandList = 
        driver.findElementByXPath("//android.widget.TextView(@Text='android.widget.TextView')");
        t.tap(tapOptions().withElement(element(expandList)));
    }
}

Под object tap появляется красная линия, говорящая о том, что: метод tap (TapOptions) не определен для типа TouchActions
TapObjectIssue

Ответы [ 3 ]

0 голосов
/ 03 апреля 2019

Попробуйте этот фрагмент кода

  WebElement expandList = 
       driver.findElementByXPath("//android.widget.TextView(@Text='android.widget.TextView')");

    TouchActions t = new TouchActions(driver);
    t.singleTap(expandList);
    t.perform();
0 голосов
/ 07 апреля 2019

Я наконец смог выполнить код следующим образом:

без создания или использования какого-либо объекта для TouchAction и TapOptions, он работал так, как показано ниже. Ранее код находил первый элемент (Views) и до .click () работал, но Appium не читал его. С помощью этих ссылок ( Ошибка при попытке сенсорных действий с помощью Appium ) && ( ClassCastException при использовании Appium TouchActions ) мне каким-то образом удалось внести изменения в мой код, и они отлично работали .

Более того, во 2-й последней строке кода,

TouchActions подчеркнуто желтым (предупреждающим) цветом, который гласит: «TouchAction - необработанный тип. Ссылки на универсальный тип TouchAction должны быть параметризованы». Я все еще хочу знать, как можно разрешить эти и подобные предупреждения.

импорт статического io.appium.java_client.touch.TapOptions.tapOptions;

импорт статического io.appium.java_client.touch.WaitOptions.waitOptions;

импорт статического io.appium.java_client.touch.offset.ElementOption.element;

import java.net.MalformedURLException;

import java.time.Duration;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.WebElement;

import io.appium.java_client.TouchAction;

import io.appium.java_client.android.AndroidDriver;

import io.appium.java_client.android.AndroidElement;

публичный класс Жесты расширяет Родителя {

public static void main (String [] args) выдает MalformedURLException {

// TODO Автоматически генерируемая заглушка метода

Драйвер AndroidDriver = Capabilities ();

driver.findElementByXPath ("// android.widget.TextView [@ text = 'Views']"). Click ();

// чтобы сделать нажатие на устройство, Appium_team сделали class = TouchActions

TapOptions t = новые TapOptions ();

WebElement expandList = driver.findElementByXPath ("// android.widget.TextView [@ text = 'Расширяемые списки']");

new TouchAction (драйвер) .tap (tapOptions (). WithElement (element (expandList))). WaitAction (waitOptions (Duration.ofMillis (250))). Execute ();

driver.manage (). Timeouts (). ImplicitlyWait (60, TimeUnit.SECONDS); }}

0 голосов
/ 03 апреля 2019

Для org.openqa.selenium.interactions.touch.TouchActions не существует никакого метода tap .

Вы можете использовать singleTap () вместо tap ().

Вы можете проверить все доступные методы для TouchActions здесь

...