com.google.common.collect.Maps $ TransformedEntriesMap нельзя преобразовать в org.openqa.selenium.WebElement - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть следующий код:

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.TouchAction;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.android.AndroidDriver;
import java.net.URL;
import java.util.concurrent.TimeUnit;

public class SampleSauceCheckBoxTest {

    public static final String URL = "http://127.0.0.1:4723/wd/hub";
    public static AndroidDriver driver = null;

    public static void main(String[] args) throws Exception {

        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("platformName", "Android");
        capabilities.setCapability("platformVersion", "6.0");
        capabilities.setCapability("deviceName", "Android Emulator");
        capabilities.setCapability("app", "\\Users\\jsun\\Downloads\\app-debug.apk");

        driver = new AndroidDriver<>(new URL(URL), capabilities);

        /**
         * Test Actions here...
         */
        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

        MobileElement mbeLogin = (MobileElement)driver.findElementByXPath("//android.widget.Button[@content-desc='Log In']");
        mbeLogin.click();

        //driver.quit();
    }

}

Вот вывод:

C: \ dev \ java \ jdk1.8.0_181 \ bin \ java.exe "-javaagent: C: \ Program Files \ JetBrains \ IntelliJ IDEA Community Edition 2018.2.4 \ lib \ idea_rt.jar = 57587: C: \ Program Files \ JetBrains \ IntelliJ IDEA Community Edition 2018.2.4 \ bin "-Dfile.encoding =UTF-8 -класс путь C: \ dev \ java \ jdk1.8.0_181 \ jre \ lib \ charsets.jar; C: \ dev \ java \ jdk1.8.0_181 \ jre \ lib \ deploy.jar; C: \ dev \Java \ jdk1.8.0_181 \ JRE \ Lib \ вн \ доступа мостового 64.jar; C: \ DEV \ Java \ jdk1.8.0_181 \ JRE \ Lib \ вн \ cldrdata.jar; C: \ DEV \ Java \jdk1.8.0_181 \ JRE \ Lib \ вн \ dnsns.jar; C: \ DEV \ Java \ jdk1.8.0_181 \ JRE \ Lib \ вн \ jaccess.jar; C: \ DEV \ Java \ jdk1.8.0_181 \ JRE\ Lib \ вн \ jfxrt.jar; C: \ DEV \ Java \ jdk1.8.0_181 \ JRE \ Lib \ доб \ localedata.jar; C: \ DEV \ Java \ jdk1.8.0_181 \ JRE \ Lib \ вн \ Насхорн.jar; C: \ DEV \ Java \ jdk1.8.0_181 \ JRE \ Lib \ вн \ sunec.jar; C: \ DEV \ Java \ jdk1.8.0_181 \ JRE \ Lib \ вн \ sunjce_provider.jar; C: \DEV \ Java \ jdk1.8.0_181 \ JRE \ Lib \ вн \ sunmscapi.jar; C: \ DEV \ Java \ jdk1.8.0_181 \ JRE \ Lib \ доб \ sunpkcs11.jar; C: \ DEV \ Java \ JDK1.8.0_181 \ JRE \ Lib \ вн \ zipfs.jar; C: \ DEV \ Java \ jdk1.8.0_181 \ JRE \ Lib \ javaws.jar; C: \ DEV \ Java \ jdk1.8.0_181 \ JRE \ Lib \jce.jar; C: \ DEV \ Java \ jdk1.8.0_181 \ JRE \ Lib \ jfr.jar; C: \ DEV \ Java \ jdk1.8.0_181 \ JRE \ Lib \ jfxswt.jar; C: \ DEV \ Java\ jdk1.8.0_181 \ JRE \ Lib \ jsse.jar; C: \ DEV \ Java \ jdk1.8.0_181 \ JRE \ Lib \ Управляй-agent.jar; C: \ DEV \ Java \ jdk1.8.0_181 \ JRE \Lib \ plugin.jar; C: \ DEV \ Java \ jdk1.8.0_181 \ JRE \ Lib \ resources.jar; C: \ DEV \ Java \ jdk1.8.0_181 \ JRE \ Lib \ rt.jar; C: \ работа\ SauceLabsTest \ из \ \ SauceLabsTest производства; C: \ работы \ SauceLabsTest \ Lib \ рафинированное \ Java-клиент-3.4.0.jar; C: \ работа \ SauceLabsTest \ Lib \ рафинированного \ селена-сервер автономный-3.4.0.jar SampleSauceCheckBoxTest 21 ноября 2018 г. 14:40:07 org.openqa.selenium.remote.ProtocolHandshake createSession INFO: обнаружен диалект: W3C Исключение в потоке «main» org.openqa.selenium.WebDriverException: возвращаемое значение не может быть преобразовано в WebE: {element-6066-11e4-a52e-4f735466cecf = 1} Информация о сборке: версия: '3.4.0', редакция: 'неизвестно', время: 'неизвестно' Системная информация: хост: 'L5480X2M2S5M2', ip: '10 .166.43.162 ', os.name:' Windows 10 ', os.arch:' amd64 ', os.version: '10 .0', java.version: '1.8.0_181' Информация о драйвере: driver.version:AndroidDriver по адресу org.openqa.selenium.remote.RemoteWebDriver.findElement (RemoteWebDriver.java:417) по адресу org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath (RemoteWebDriver.java_X_DerFile.IberGame)По умолчанию: 34) Причина: java.lang.ClassCastException: com.google.common.collect.Maps $ TransformedEntriesMap нельзя преобразовать в org.openqa.selenium.WebElement в org.openqa.selenium.remote.RemoteWebDriver.findElement (RemoteWebD.ver: 415) ... еще 5

Процесс завершен с кодом выхода 1

Код работал раньше, сЭто не проблема совместимости версий appium / selenium.

1 Ответ

0 голосов
/ 23 ноября 2018

Из логов я могу понять, что вам нужно использовать универсальный AndroidDriver с типом MobileElement.Поэтому в вашем коде измените следующую строку на

AndroidDriver <MobileElement> driver = null;

Также удалите приведение к MobileElement, выполненное при поиске элемента.

Редактировать: Также убедитесь, что используется последняяJava-клиент Appium и Selenium.

...