Несоответствие типов: не удается преобразовать из MobileElement в List

#java

#java

Вопрос:

Я получаю следующую ошибку в строке 31, где говорится:

Несоответствие типов: не удается преобразовать из MobileElement в List

Я думаю, что это была какая-то проблема с импортом, но после импорта «java.util.List;» теперь я получаю сообщение об ошибке выше.

 package br.ce.joaobastos.appium;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.concurrent.TimeUnit;

import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;

import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;

public class FormulárioTeste {
    
    @Test
    public void devePreencherCampoTexto() throws MalformedURLException {
        DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
        desiredCapabilities.setCapability("platformName", "Android");
        desiredCapabilities.setCapability("deviceName", "emulator-5554");
        desiredCapabilities.setCapability("automationName", "uiautomator2");
        desiredCapabilities.setCapability(MobileCapabilityType.APP, "C:/Users/prosi/eclipse-workspace/CursoAppium/src/main/resources/CTAppium11-200120-201928.apk");
        
        
        AndroidDriver<MobileElement> driver = new AndroidDriver(new URL("http://localhost:4723/wd/hub"), desiredCapabilities);
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        
        //Selecionar Formulario
        List<MobileElement> elementosEncontrados = driver.findElement(By.className("android.widget.TextView"));
        
        
        
        //Escrever Nome
        
        
        
        //Checar Nome Escrito
        
        driver.quit();
    }
} 

Печать с указанием ошибки

Комментарии:

1. В нем говорится, что вы не можете назначить его List<MobileElement> , этот метод называется driver.findElement возвращает только один MobileElement, а не их список.

Ответ №1:

По сути, я собираюсь сказать то же самое, что сказал @MrFisherman, что сводится к интерпретации ошибки, которую вы получаете. Ошибка

Несоответствие типов: не удается преобразовать из MobileElement в List

Пытается сообщить вам, что метод, который вы вызываете в строке 31, который driver.findElement(By.className("android.widget.TextView"));

возвращает только один экземпляр MobileElement, поэтому, если вы измените эту строку на

MobileElement elementosEncontrados = driver.findElement(By.className("android.widget.TextView"));

Ошибка исчезнет.

Надеюсь, это поможет. Еще одна вещь, я знаю, что мы на португальском языке ставим акценты в словах, но я бы настоятельно посоветовал вам воздержаться от размещения акцентов в коде, поэтому я бы предложил изменить имя класса, чтобы убрать акцент.